blob: aa8ecc8e4392bdb0dd958bcc17537e01ec7c4f97 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!-- This pom serves as the the UIMA Java SDK (uimaj) common parent pom,
and may include overrides to the project-wide parent-pom.
Over time, things in this pom which apply to
other projects within UIMA are migrated to the
project-wide parent pom.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.uima</groupId>
<artifactId>parent-pom</artifactId>
<version>17</version>
<relativePath />
</parent>
<artifactId>uimaj-parent</artifactId>
<packaging>pom</packaging>
<version>3.5.0</version>
<name>Apache UIMA Java SDK: ${project.artifactId}</name>
<description>The common parent pom for the UIMA Java SDK</description>
<url>${uimaWebsiteUrl}</url>
<issueManagement>
<system>Github</system>
<url>https://github.com/apache/uima-uimaj/issues</url>
</issueManagement>
<scm>
<tag>uimaj-3.5.0</tag>
<connection>scm:git:https://github.com/apache/uima-uimaj/</connection>
<developerConnection>scm:git:https://github.com/apache/uima-uimaj/</developerConnection>
<url>https://github.com/apache/uima-uimaj/</url>
</scm>
<!-- The repositories and pluginRepositories section is duplicated from
the parent pom one, and adds the Apache Snapshot Nexus repository
where UIMA snapshots are deployed. This is needed if for instance,
a project depends on some new SNAPSHOT level of a build tool,
where the users hasn't checked out the build tooling.
This allows maven to find the snapshots when looking for the parent of
this pom -->
<repositories>
<!-- modify central repository access: Turn on checksum checking-->
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>https://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!--
- The Eclipse Plugin modules use version ranges for their dependencies. These could resolve to
- SNAPSHOT versions if we have a SNAPSHOT repo declaration here. Thus, this repo should only
- be enabled when really needed.
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
-->
<repository>
<id>${eclipseP2RepoId}</id>
<url>https://download.eclipse.org/releases/2022-09/</url>
<layout>p2</layout>
</repository>
</repositories>
<pluginRepositories>
<!--
- The Eclipse Plugin modules use version ranges for their dependencies. These could resolve to
- SNAPSHOT versions if we have a SNAPSHOT repo declaration here. Thus, this repo should only
- be enabled when really needed.
<pluginRepository>
<id>apache.snapshots.plugins</id>
<name>Apache Snapshot Repository - Maven plugins</name>
<url>https://repository.apache.org/snapshots</url>
<layout>default</layout>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
-->
<pluginRepository>
<id>artifactory.openntf.org</id>
<name>artifactory.openntf.org</name>
<url>https://artifactory.openntf.org/openntf</url>
</pluginRepository>
</pluginRepositories>
<properties>
<tycho-version>4.0.3</tycho-version>
<!--
Configuring settings is best done through default properties that multiple plugins.
Local configurations within plugins should be avoided. Where plugins do not pick up default
properties already, they should be injected manually into the plugins.
-->
<slf4j-version>1.7.36</slf4j-version>
<maven.version>3.8.1</maven.version>
<log4j-version>2.20.0</log4j-version>
<commons-io-version>2.13.0</commons-io-version>
<commons-csv-version>1.10.0</commons-csv-version>
<commons-lang3-version>3.13.0</commons-lang3-version>
<jackson-version>2.15.2</jackson-version>
<junit-version>5.10.0</junit-version>
<junit-vintage-version>4.13.2</junit-vintage-version>
<mockito-version>5.4.0</mockito-version>
<assertj-version>3.24.2</assertj-version>
<xmlunit-version>2.9.1</xmlunit-version>
<asciidoctor.plugin.version>2.2.4</asciidoctor.plugin.version>
<asciidoctor.version>2.5.10</asciidoctor.version>
<asciidoctor.pdf.version>2.3.9</asciidoctor.pdf.version>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.release>17</maven.compiler.release>
<execution.environment>JavaSE-17</execution.environment>
<eclipseP2RepoId>org.eclipse.p2.202209</eclipseP2RepoId>
<api_check_oldVersion>3.4.1</api_check_oldVersion>
<assemblySrcDescriptor>src/main/assembly/src.xml</assemblySrcDescriptor>
<!-- BEGIN PROFILE SETTINGS: generate-release-notes-->
<github-repository>uima-uimaj</github-repository>
<git-branch>main</git-branch>
<previous-release-version>3.4.1</previous-release-version>
<!-- END PROFILE SETTINGS: generate-release-notes-->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-vintage-version}</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-bom</artifactId>
<version>${assertj-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-bom</artifactId>
<version>${mockito-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>${xmlunit-version}</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-assertj3</artifactId>
<version>${xmlunit-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io-version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3-version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>${commons-csv-version}</version>
</dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-build-api</artifactId>
<version>0.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-testing</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jface</artifactId>
<version>3.27.0.v20220817-1444</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jface.text</artifactId>
<version>3.21.0.v20220817-1340</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
<version>3.121.0.v20220829-1402</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.core.runtime</artifactId>
<version>3.26.0.v20220813-0916</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.core.resources</artifactId>
<version>3.18.0.v20220828-0546</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.core.filesystem</artifactId>
<version>1.9.500.v20220817-1539</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.debug.core</artifactId>
<version>3.20.0.v20220811-0741</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.debug.ui</artifactId>
<version>3.17.0.v20220817-1312</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.emf.codegen</artifactId>
<version>2.22.0.v20210420-0623</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.equinox.app</artifactId>
<version>1.6.200.v20220720-2012</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.equinox.common</artifactId>
<version>3.16.200.v20220817-1601</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.equinox.registry</artifactId>
<version>3.11.200.v20220817-1601</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.equinox.preferences</artifactId>
<version>3.10.100.v20220710-1223</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.18.100.v20220817-1601</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.text</artifactId>
<version>3.12.200.v20220817-1340</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.editors</artifactId>
<version>3.14.400.v20220730-1844</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.forms</artifactId>
<version>3.11.400.v20220817-1444</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.ide</artifactId>
<version>3.19.100.v20220820-0412</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.views</artifactId>
<version>3.11.200.v20220817-1444</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.workbench</artifactId>
<version>3.126.0.v20220823-0718</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.ui.workbench.texteditor</artifactId>
<version>3.16.600.v20220809-1658</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.31.0.v20220831-1439</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.launching</artifactId>
<version>3.19.700.v20220730-1850</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.debug</artifactId>
<version>3.19.300.v20220812-1529</version>
<exclusions>
<exclusion>
<!--
The p2 resolver appears to have trouble with the "icu-data" classifier
-->
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>com.ibm.icu</artifactId>
</exclusion>
<exclusion>
<!--
The p2 resolver appears to have trouble with this one and tries to download it with
"tools" as the classifier.
-->
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.debug</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.ui</artifactId>
<version>3.27.0.v20220824-0714</version>
</dependency>
<dependency>
<groupId>${eclipseP2RepoId}</groupId>
<artifactId>org.eclipse.jdt.debug.ui</artifactId>
<version>3.12.800.v20220813-1738</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit-version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.openntf.maven</groupId>
<artifactId>p2-layout-resolver</artifactId>
<version>1.7.0</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>${maven.compiler.target}</version>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<!-- See: https://issues.apache.org/jira/browse/UIMA-6349 -->
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<configuration>
<newVersion>
<file>
<path>${project.build.directory}/${project.build.finalName}.jar</path>
</file>
</newVersion>
<parameter>
<ignoreMissingClassesByRegularExpressions>
<ignoreMissingClassesByRegularExpression>com\.strobel\..*</ignoreMissingClassesByRegularExpression>
<ignoreMissingClassesByRegularExpression>org\.apache\.logging\.log4j\..*</ignoreMissingClassesByRegularExpression>
</ignoreMissingClassesByRegularExpressions>
</parameter>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
<!-- default configuration -->
<configuration>
<excludes combine.children="append">
<!-- Eclipse launch files - no need for a license -->
<exclude>**/run_configuration/*.launch</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<!-- Overriding the execution from the Apache parent POM -->
<id>source-release-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<descriptorRefs combine.self="override" />
<descriptors>
<descriptor>${assemblySrcDescriptor}</descriptor>
</descriptors>
<tarLongFileMode>${assembly.tarLongFileMode}</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jacoco</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<!-- Duplicates on classpath cause an exception in JaCoCo report -->
<exclude>**/org/apache/uima/examples/SourceDocumentInformation*</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- ************** m2e profile ************* -->
<profile>
<id>m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<!-- This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- ***************************** -->
<!-- IGNORE maven-bundle-plugin -->
<!-- ***************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<versionRange>[3,)</versionRange>
<goals>
<goal>process</goal>
<goal>bundle</goal>
<goal>manifest</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
</project>