<?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>12</version> | |
</parent> | |
<groupId>org.apache.uima</groupId> | |
<artifactId>uimaj-parent</artifactId> | |
<packaging>pom</packaging> | |
<version>2.10.4-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/trunk/uimaj-parent | |
</connection> | |
<developerConnection> | |
scm:svn:https://svn.apache.org/repos/asf/uima/uimaj/trunk/uimaj-parent | |
</developerConnection> | |
<url> | |
http://svn.apache.org/viewvc/uima/uimaj/trunk/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> | |
<!-- | |
BACKWARD_COMPATIBLE_IMPLEMENTER - patch version (=.=.+) | |
BACKWARD_COMPATIBLE_USER - minor version (=.+.0) | |
NON_BACKWARD_COMPATIBLE - major version (+.0.0) | |
--> | |
<compat.level>BACKWARD_COMPATIBLE_USER</compat.level> | |
<compat.previous.version>2.10.2</compat.previous.version> | |
<api_check_oldVersion>2.10.2</api_check_oldVersion> | |
<!-- | |
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. | |
--> | |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
<maven.surefire.argLine /> | |
<maven.surefire.java9 /> | |
<jacoco.argLine /> | |
<java.version>8</java.version> | |
</properties> | |
<dependencyManagement> | |
<dependencies> | |
<dependency> | |
<groupId>junit</groupId> | |
<artifactId>junit</artifactId> | |
<version>4.12</version> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
</dependencyManagement> | |
<build> | |
<pluginManagement> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-surefire-plugin</artifactId> | |
<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.jacoco</groupId> | |
<artifactId>jacoco-maven-plugin</artifactId> | |
<version>0.7.6.201602180812</version> | |
</plugin> | |
</plugins> | |
</pluginManagement> | |
<plugins> | |
</plugins> | |
</build> | |
<profiles> | |
<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.13.0</version> | |
<configuration> | |
<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> | |
</profiles> | |
</project> |