<?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> |