blob: 2b1459db63b366cc7c499c690c8af5ca7e143075 [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>
<relativePath />
<version>10</version>
</parent>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-parent</artifactId>
<packaging>pom</packaging>
<version>3.0.0-alpha03-SNAPSHOT</version>
<name>Apache UIMA Java SDK: ${project.artifactId}</name>
<description>The common parent pom for the uimaj SDK</description>
<url>${uimaWebsiteUrl}</url>
<!-- Special inheritance note
even though the <scm> element that follows is exactly the
same as those in super poms, it cannot be inherited because
there is some special code that computes the connection elements
from the chain of parent poms, if this is omitted.
Keeping this a bit factored allows cutting/pasting the <scm>
element, and just changing the following two properties -->
<scm>
<connection>
scm:svn:http://svn.apache.org/repos/asf/uima/uimaj/branches/experiment-v3-jcas/uimaj-parent
</connection>
<developerConnection>
scm:svn:https://svn.apache.org/repos/asf/uima/uimaj/branches/experiment-v3-jcas/uimaj-parent
</developerConnection>
<url>
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-parent
</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>
<repository>
<id>eclipsePlugins</id>
<name>Eclipse components</name>
<layout>default</layout>
<url>http://repo1.maven.org/eclipse</url>
<releases>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- modify central repository access:
Turn on checksum checking-->
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>http://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots.plugins</id>
<name>Apache Snapshot Repository - Maven plugins</name>
<url>http://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>
</pluginRepositories>
<properties>
<uimaScmRoot>uimaj</uimaScmRoot>
<uimaScmProject>${project.artifactId}</uimaScmProject>
<!--
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.24</slf4j.version>
<log4j.version>2.8</log4j.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.surefire.heap>512m</maven.surefire.heap>
<maven.surefire.argLine />
<maven.surefire.java9 />
<jacoco.argLine />
<api_check_oldVersion>2.9.0</api_check_oldVersion>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- set dependency versions for logger parts -->
<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>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Used to enable findbug rule suppression annotations -->
<!-- This is the Apache v2 license version -->
<dependency>
<groupId>com.github.stephenc.findbugs</groupId>
<artifactId>findbugs-annotations</artifactId>
<version>1.3.9-1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<source>${maven.compiler.source}</source>
<javadocVersion>${maven.compiler.source}</javadocVersion> <!-- https://issues.apache.org/jira/browse/UIMA-5369 -->
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<configuration>
<source>${maven.compiler.source}</source>
</configuration>
</execution>
<execution>
<id>default-cli</id> <!-- Jenkins runs this apparently 3/2015 -->
<configuration>
<source>${maven.compiler.source}</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>@{jacoco.argLine} -Xmx@{maven.surefire.heap} -Xms@{maven.surefire.heap} @{maven.surefire.argLine} @{maven.surefire.java9}</argLine>
</configuration>
</plugin>
<!-- Code quality checking plugins mostly used for CI builds -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.6</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<!-- version 2.0.0 fails -->
<!-- version 2.3.4 eliminates spurious warning messages -->
<!-- version 2.5 has accidental dependency on Java 6 -->
<!-- version 2.5.0 gives error - default pkg '.' not permitted, o.a.u.cas.impl -->
<!-- version 2.3.7 failing in some projects --> <!-- doesnt support java 8 -->
<!-- currently only overridden in uimaj-ep-configuration because otherwise, that is excluded from
update site plugins/ folder -->
<!-- version>3.0.1</version causes 2 plugins to go missing when FeaturesAndBundlesPublisher runs -->
<version>2.3.7</version> <!-- override to 3.0.1 just in those 2-3 projects that require it -->
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<excludes combine.children="append">
<exclude>src/main/run_configuration/*.launch</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<!-- https://issues.apache.org/jira/browse/UIMA-5367 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.5</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-versions</id>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${maven.compiler.target}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- ************ Java 9 enablement ************** -->
<profile>
<id>java9</id>
<activation>
<jdk>9</jdk>
</activation>
<properties>
<maven.surefire.java9>--add-modules java.xml.bind</maven.surefire.java9>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>--add-modules</arg>
<arg>java.xml.bind</arg>
</compilerArgs>
<target>1.9</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>pmd</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>cpd</goal>
<goal>pmd</goal>
</goals>
<configuration>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<targetJdk>${maven.compiler.target}</targetJdk>
<linkXRef>false</linkXRef>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>findbugs</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>findbugs</goal>
</goals>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<xmlOutput>true</xmlOutput>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>cobertura</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>cobertura</goal>
</goals>
<configuration>
<formats>
<format>xml</format>
</formats>
</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>
<!-- Duplicates on classpath cause an exception in JaCoCo report -->
<exclude>**/org/apache/uima/examples/SourceDocumentInformation*</exclude>
<exclude>**/org/apache/uima/examples/SourceDocumentInformation_Type*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>jacoco.argLine</propertyName>
</configuration>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules />
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ********** Backwards compatibility report generation profile ************** -->
<profile>
<id>enforce-compatibility</id>
<activation>
<file>
<exists>marker-file-identifying-api-compatibility-check</exists>
</file>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<excludes combine.children="append">
<exclude>**/api-change-report/**/*.*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- https://siom79.github.io/japicmp/MavenPlugin.html -->
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<version>0.9.4</version>
<configuration>
<!-- fixed in 0.94 -->
<oldVersion>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${api_check_oldVersion}</version>
</dependency>
</oldVersion>
<parameter>
<onlyModified>true</onlyModified>
<!-- filter out classes with impl in their package or class name -->
<postAnalysisScript>${project.basedir}/../uimaj-parent/src/main/groovy/api-report.groovy</postAnalysisScript>
</parameter>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>cmp</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- This copy is to have the api change report included in the source distribution -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-API-change-report</id>
<phase>install</phase> <!-- must follow verify -->
<goals><goal>run</goal></goals>
<configuration>
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<if>
<available file="${project.build.directory}/japicmp/" />
<then>
<copy toDir="${basedir}/api-change-report">
<fileset dir="${project.build.directory}/japicmp" />
</copy>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
</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>