blob: b4d8194b48ca10510f4ea54552a9cb99ef52b279 [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.
-->
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>29</version>
<relativePath />
</parent>
<groupId>org.apache.uima</groupId>
<artifactId>parent-pom</artifactId>
<version>18-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Apache UIMA ${project.artifactId}</name>
<description>
UIMA (Unstructured Information Management Architecture).
UIMA promotes community development and reuse of annotators
that extract metadata from unstructured information (text, audio, video, etc.);
it provides for externalized declaration of type systems,
component configuration, aggregation, and more,
supports scalablity, and provides tooling.
This is the common UIMA parent pom. It contains the project-wide defaults.
</description>
<url>https://uima.apache.org</url>
<inceptionYear>2006</inceptionYear>
<mailingLists>
<mailingList>
<name>Apache UIMA Development List</name>
<subscribe>dev-subscribe@uima.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@uima.apache.org</unsubscribe>
<post>mailto:dev@uima.apache.org</post>
<archive>https://lists.apache.org/list.html?dev@uima.apache.org</archive>
</mailingList>
<mailingList>
<name>Apache UIMA Users List</name>
<subscribe>user-subscribe@uima.apache.org</subscribe>
<unsubscribe>user-unsubscribe@uima.apache.org</unsubscribe>
<post>mailto:user@uima.apache.org</post>
<archive>https://lists.apache.org/list.html?user@uima.apache.org</archive>
</mailingList>
<mailingList>
<name>Apache UIMA Commits List</name>
<subscribe>commits-subscribe@uima.apache.org</subscribe>
<unsubscribe>commits-unsubscribe@uima.apache.org</unsubscribe>
<post>mailto:commits@uima.apache.org</post>
<archive>https://lists.apache.org/list.html?commits@uima.apache.org</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://github.com/apache/uima-parent-pom</connection>
<developerConnection>scm:git:https://github.com/apache/uima-parent-pom</developerConnection>
<url>https://github.com/apache/uima-parent-pom</url>
<tag>HEAD</tag>
</scm>
<issueManagement>
<system>Github</system>
<url>https://github.com/apache/uima-parent-pom/issues</url>
</issueManagement>
<ciManagement>
<system>Jenkins</system>
<url>https://ci-builds.apache.org/</url>
<notifiers />
</ciManagement>
<properties>
<!-- BEGIN PROFILE SETTINGS: generate-release-notes-->
<github-repository>uima-parent-pom</github-repository>
<git-branch>main</git-branch>
<previous-release-version>16</previous-release-version>
<!-- END PROFILE SETTINGS: generate-release-notes-->
<!-- *********************************************************************************************************** -->
<!-- U G H change manually for release (to remove -SNAPSHOT * -->
<!-- *********************************************************************************************************** -->
<!-- *********************************************************************************************************** -->
<!-- *********************************************************************************************************** -->
<uimaBuildResourcesVersion>6</uimaBuildResourcesVersion>
<uimaWebsiteUrl>https://uima.apache.org</uimaWebsiteUrl>
<maven.build.timestamp.format>yyMMdd_HHmm</maven.build.timestamp.format>
<buildDateTime>${maven.build.timestamp}</buildDateTime>
<!-- poms wanting this need to set the postNoticeText to this value -->
<ibmNoticeText>
Portions of Apache UIMA were originally developed by
International Business
Machines Corporation and are
licensed to the Apache Software Foundation under the
"Software
Grant License Agreement", informally known as the
"IBM UIMA License Agreement".
Copyright (c)
2003, 2006 IBM Corporation.
</ibmNoticeText>
<!-- ============================================= -->
<!-- * V E R S I O N S -->
<!-- * most inherited from apache-wide parent pom -->
<!-- ============================================= -->
<maven.version>3.9.3</maven.version>
<javaVersionMinBuild>17</javaVersionMinBuild>
<felix.bundle.version>3.3.0</felix.bundle.version>
<maven.surefire.heap>512m</maven.surefire.heap>
<maven.groovy.version>4.0.15</maven.groovy.version>
<maven.ant.version>1.10.14</maven.ant.version>
<gpg.skip>false</gpg.skip>
<!-- Disable release staging when not performing release build -->
<!-- Better solution would be a skip parameter - https://issues.apache.org/jira/browse/SCM-1013 -->
<releaseStagingCheckoutPhase>none</releaseStagingCheckoutPhase>
<releaseStagingCommitPhase>none</releaseStagingCommitPhase>
</properties>
<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>
</repositories>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.17</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.21.0</version>
</plugin>
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<version>0.18.1</version>
<dependencies>
<dependency>
<!-- See: https://issues.apache.org/jira/browse/UIMA-6349 -->
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-jsr223</artifactId>
<version>3.0.19</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.7.3.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>2.0.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<!-- https://issues.apache.org/jira/browse/UIMA-5367 -->
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.11</version>
</plugin>
<!-- assembly plugin
Disable running assembly:assembly with
warning message to use install instead -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<descriptors>
<descriptor>do-not-use--mvn-assembly-assembly--instead-use-mvn-install</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.9.0</version>
<executions>
<execution>
<!-- force to use process-classes phase so runs after Java Annotations are available -->
<!-- https://jira.codehaus.org/browse/MPLUGIN-267 -->
<id>default-descriptor</id>
<phase>process-classes</phase>
</execution>
<execution>
<id>generate-helpmojo</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
<configuration>
<extractors>
<extractor>java-annotations</extractor>
</extractors>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<source>${maven.compiler.source}</source>
<!-- https://issues.apache.org/jira/browse/UIMA-5369 -->
<javadocVersion>${maven.compiler.source}</javadocVersion>
<notimestamp>true</notimestamp>
<encoding>UTF-8</encoding>
<!-- if next is omitted, causes all projects in reactor that don't
already have full javadocs built, to have them built -->
<detectOfflineLinks>false</detectOfflineLinks>
<quiet>true</quiet>
<!-- identify tags we use so we don't get warning messages for them -->
<tags>
<tag>
<name>generated</name>
<placement>X</placement>
</tag>
<tag>
<name>ordered</name>
<placement>X</placement>
</tag>
<tag>
<name>modifiable</name>
<placement>X</placement>
</tag>
<tag>
<name>model</name>
<placement>X</placement>
</tag>
<tag>
<name>pre</name>
<placement>X</placement>
</tag>
</tags>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<!-- turn off javadoc build for each module by default
(unless apache-release - for speed)
override in individual cases to turn back on if wanted -->
<phase />
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifestEntries>
<Project-Title>Apache UIMA</Project-Title>
<!-- Implementation-Title>${pom.name}</Implementation-Title from addDefaultImplementationEntries-->
<!-- Implementation-Version>${pom.version}</Implementation-Version from addDefaultImplementationEntries-->
<!-- Implementation-Vendor>Apache Software Foundation</Implementation-Vendor from addDefaultImplementationEntries-->
<!-- also added by default:
Implementation-Vendor-Id: ${pom.groupId} -->
<Implementation-Url>${uimaWebsiteUrl}</Implementation-Url>
<Implementation-License>https://www.apache.org/licenses/LICENSE-2.0.txt</Implementation-License>
<Build-Date>${buildDateTime}</Build-Date>
</manifestEntries>
<manifest>
<addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<dependencies>
<dependency>
<!-- for ant extension supporting "if" -->
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>20020829</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${maven.ant.version}</version>
</dependency>
<dependency>
<!-- <containsregexp> form for filesets -->
<groupId>org.apache.ant</groupId>
<artifactId>ant-apache-regexp</artifactId>
<version>${maven.ant.version}</version>
</dependency>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${maven.groovy.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.9</version>
<extensions>true</extensions>
<executions>
<execution>
<id>uima-bundle</id>
<goals>
<goal>manifest</goal>
</goals>
<phase>process-classes</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.15</version>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
<!-- default configuration -->
<configuration>
<consoleOutput>true</consoleOutput>
<excludes>
<exclude>**/.gitattributes</exclude>
<exclude>**/.tycho-consumer-pom.xml</exclude>
<exclude>.github/**/*</exclude> <!-- GitHub config/template files -->
<exclude>release.properties</exclude> <!-- generated file -->
<exclude>README*</exclude>
<exclude>RELEASE_NOTES*</exclude>
<exclude>issuesFixed/**</exclude> <!-- generated file -->
<!-- Maven profile trigger files -->
<exclude>**/marker-file-identifying-*</exclude>
<exclude>**/marker-file-enabling-*</exclude>
<exclude>DEPENDENCIES</exclude> <!-- generated file -->
<exclude>**/MANIFEST.MF</exclude> <!-- MANIFEST.MF files cannot have comments -->
<exclude>**/*.ppt</exclude> <!-- power point sources -->
<exclude>**/*.sha512</exclude>
<exclude>**/*.patch.txt</exclude>
<exclude>**/.factorypath</exclude> <!-- Eclipse APT generated file -->
<exclude>**/.idea/**</exclude> <!-- IDEA config files -->
<exclude>**/.settings/**</exclude> <!-- Eclipse config files -->
<exclude>**/.project</exclude> <!-- Eclipse config files -->
<exclude>**/.classpath</exclude> <!-- Eclipse config files -->
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<!-- generate the issuesFixed report of Jiras fixed in this release -->
<!-- uses the property "jiraVersion" to select the version -->
<!-- Runs automatically during release.
Can also be run manually using
mvn changes:jira-report -N -DjiraVersion=xxxxxx where
xxxxxx is the jira internal version number which you can get
from the Jira url (see parameter fixforversion=xxxxxx)
by going to https://issues.apache.org/jira/browse/UIMA
and selecting "Releases" and then going to the
particular version and looking in the url for
that version. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>2.12.1</version>
<dependencies> <!-- needed for java 11 -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-helper-maven-plugin</artifactId>
<version>7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.1.1</version>
<dependencies>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${maven.groovy.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>${maven.version}</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${javaVersionMinBuild}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- sets the following properties:
parsedVersion.majorVersion
parsedVersion.minorVersion
parsedVersion.incrementalVersion
parsedVersion.qualifier
parsedVersion.buildNumber
parsedVersion.osgiVersion
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>parse-project-version</id>
<goals>
<goal>parse-version</goal>
</goals>
<configuration>
<propertyPrefix>parsedVersion</propertyPrefix>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>set buildYear and buildMonth</id>
<goals>
<goal>parse-date-time</goal>
</goals>
<configuration>
<parseSpecs>
<parseSpec>
<name>buildYear</name>
<format>yyyy</format>
</parseSpec>
<parseSpec>
<name>buildMonth</name>
<format>MMMM</format>
</parseSpec>
</parseSpecs>
</configuration>
</execution>
</executions>
</plugin>
<!-- this overrides the apache pom to
use this resource bundle which
allows additional text after the NOTICE file
Note: putting this in the pluginManagement section
fails to override the configuration from the
Apache common parent pom -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<resourceBundle>org.apache.uima:uima-build-resources:${uimaBuildResourcesVersion}</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
<plugin> <!-- https://issues.apache.org/jira/browse/UIMA-2966 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>fix-text-file-line-endings</id>
<goals>
<goal>run</goal>
</goals>
<phase>compile</phase>
<configuration>
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<if>
<available file="${project.build.outputDirectory}" />
<then>
<fixcrlf srcdir="${project.build.outputDirectory}">
<include name="**/META-INF/DEPENDENCIES" />
<include name="**/META-INF/LICENSE" />
<include name="**/META-INF/NOTICE" />
</fixcrlf>
</then>
</if>
</target>
</configuration>
</execution>
<execution>
<id>dup-meta-jar-cleanup</id>
<goals>
<goal>run</goal>
</goals>
<phase>prepare-package</phase> <!-- before Jar plugin -->
<configuration>
<target>
<delete file="${project.build.directory}/classes/META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml" quiet="true" />
<delete file="${project.build.directory}/classes/META-INF/maven/${project.groupId}/${project.artifactId}/pom.properties" quiet="true" />
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
<!--reporting-->
<profiles>
<!-- ************************************************** -->
<!-- * apache-release * -->
<!-- * NOTE: This profile is activated while * -->
<!-- * running the Maven build pipeline, usually * -->
<!-- * clean verify (for mvn release:prepare) or * -->
<!-- * deploy (for mvn release;perform), * -->
<!-- * but is not activated for the * -->
<!-- * outer execution for mvn release... * -->
<!-- * on the pom being released * -->
<!-- ************************************************** -->
<!-- fix apache common pom -->
<profile>
<id>apache-release</id>
<properties>
<isApacheRelease>true</isApacheRelease>
<releaseStagingCheckoutPhase>initialize</releaseStagingCheckoutPhase>
<releaseStagingCommitPhase>deploy</releaseStagingCommitPhase>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<!-- turn back on javadoc build for each module by default
https://issues.apache.org/jira/browse/UIMA-3251 -->
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- to support multi-module source-release builds -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>source-release-assembly</id>
<!-- note: this is configured above to run only at execution root -->
<configuration>
<!-- by not attaching, we prevent the source release from going to Maven repos -->
<!-- https://issues.apache.org/jira/browse/UIMA-3247 -->
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
<!-- to run source plugin without forking -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources-nf</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
<execution>
<id>attach-sources</id>
<phase /> <!-- turn off the plain jar one -->
</execution>
</executions>
</plugin>
<!-- to fix up any generated Javadocs to have consistent line ends in html files -->
<!-- runs in several phases after package -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>maybe-fix-javadoc-line-ends</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<if>
<available file="${project.build.directory}/site/apidocs/" />
<then>
<echo>Fixing line-endings for ${project.build.directory}/site/apidocs/</echo>
<fixcrlf srcdir="${project.build.directory}/site/apidocs/">
<include name="**/*.html" />
</fixcrlf>
</then>
</if>
</target>
</configuration>
</execution>
<execution>
<id>copy-pom-to-target</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<!-- copy to target so checksum-maven-plugin can sha512 checkum it -->
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<if>
<!--
- In some Tycho modules (e.g. feature modules), Tycho generates a "consumer
- pom" which may contain additional information injected by Tycho based on
- the Eclipse metadata files. If such a consumer pom is present, we need
- to use it as a basis for calculating the SHA512 hash and the GPG signature
-->
<available file="${project.basedir}/.tycho-consumer-pom.xml" />
<then>
<property name="pom-file-src" location="${project.basedir}/.tycho-consumer-pom.xml" />
</then>
<else>
<property name="pom-file-src" location="${project.basedir}/pom.xml" />
</else>
</if>
<property name="pom-file-tgt" location="${project.build.directory}/${project.artifactId}-${project.version}.pom" />
<copy file="${pom-file-src}" tofile="${pom-file-tgt}" />
</target>
</configuration>
</execution>
<execution>
<!--
- The POM checksum needs a separate treatment because it is not included in the
- attached artifacts.
- Cannot use checksum-maven-plugin:files here because of
- https://github.com/nicoulaj/checksum-maven-plugin/issues/136
-->
<id>pom-checksum</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<checksum algorithm="SHA-512" fileext=".sha512" format="MD5SUM" forceoverwrite="yes">
<fileset dir="${project.build.directory}">
<include name="${project.artifactId}-${project.version}.pom" />
</fileset>
</checksum>
</target>
</configuration>
</execution>
<execution>
<id>sign and checksum source-release.zip</id>
<phase>verify</phase> <!-- after source-release is built -->
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${gpg.skip}</skip>
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<property name="source-release" location="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" />
<if>
<available file="${source-release}" />
<then>
<echo message="Generating checksums for source-release.zip" />
<checksum format="MD5SUM" forceoverwrite="yes" algorithm="SHA-512" fileext=".sha512" file="${source-release}" />
<echo message="Generating gpg signatures for source-release.zip" />
<exec executable="gpg" failonerror="true">
<arg value="--detach-sign" />
<arg value="--armor" />
<arg value="--batch" />
<arg value="${source-release}" />
</exec>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>load-plugin</id>
<phase>validate</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
<execution>
<id>sign-release-artifacts</id>
<configuration>
<excludes>
<exclude>**/*.sha512</exclude>
<exclude>**/*.asc</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<executions>
<!-- POM checksum is calculated separately above using antrun - see comment there -->
<execution>
<id>artifacts-checksum</id>
<goals>
<goal>artifacts</goal>
</goals>
<configuration>
<attachChecksums>true</attachChecksums>
<appendFilename>true</appendFilename>
<algorithms>
<algorithm>SHA-512</algorithm>
</algorithms>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<!--
- The POM checksum needs a separate treatment because it is not included in the
- attached artifacts.
-->
<id>attach-artifacts</id>
<phase>verify</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}-${project.version}.pom.sha512</file>
<type>pom.sha512</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- *************************************************** -->
<!-- * Run Rat report * -->
<!-- *************************************************** -->
<profile>
<id>run-rat-report</id>
<activation>
<property>
<name>!disable-rat</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- *********************************************** -->
<!-- * Generate release notes * -->
<!-- *********************************************** -->
<profile>
<id>generate-release-notes</id>
<activation>
<file>
<exists>marker-file-enabling-release-notes</exists>
</file>
<property>
<name>!disable-generate-release-notes</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>gh-generate-release-notes</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<exportAntProperties>true</exportAntProperties>
<target>
<sequential xmlns:if="ant:if" if:set="isApacheRelease">
<echo level="info">Generating release notes using GitHub API via the gh CLI tool</echo>
<echo level="info">Repository : ${github-repository}</echo>
<echo level="info">New tag : ${project.artifactId}-${project.version}</echo>
<echo level="info">Old tag : rel/${project.artifactId}-${previous-release-version}</echo>
<echo level="info">Branch : ${git-branch}</echo>
<mkdir dir="issuesFixed" />
<exec executable="gh" failonerror="true" outputproperty="gh-release-notes">
<arg value="api" />
<arg value="--method" />
<arg value="POST" />
<arg value="-H" />
<arg value="Accept: application/vnd.github+json" />
<arg value="-H" />
<arg value="X-GitHub-Api-Version: 2022-11-28" />
<arg value="/repos/apache/${github-repository}/releases/generate-notes" />
<arg value="-f" />
<arg value="tag_name=${project.artifactId}-${project.version}" />
<arg value="-f" />
<arg value="target_commitish=${git-branch}" />
<arg value="-f" />
<arg value="previous_tag_name=rel/${project.artifactId}-${previous-release-version}" />
</exec>
<script language="groovy">
<![CDATA[
import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(project.properties['gh-release-notes'])
new File('issuesFixed/github-report.md').withWriter("UTF-8") { out -> out.write(json.body) }
]]>
</script>
</sequential>
<sequential xmlns:unless="ant:unless" unless:set="iisApacheRelease">
<echo level="info">Not generating release notes - this is not a release build</echo>
</sequential>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ************************************ -->
<!-- * Build Custom Binary Distribution * -->
<!-- ************************************ -->
<profile>
<id>build distribution</id>
<activation>
<file>
<exists>src/main/assembly/bin.xml</exists>
</file>
</activation>
<build>
<plugins>
<!--
assembly configuration to create bin and src distributions from conventional places
-->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>uima-distr</id>
<goals>
<goal>single</goal>
</goals>
<phase>integration-test</phase> <!-- after first copies from jar/docbk pkg -->
<configuration>
<descriptors>
<descriptor>src/main/assembly/bin.xml</descriptor>
<!-- next is replaced with more standard source-release assembly -->
<!-- descriptor>src/main/assembly/src.xml</descriptor -->
</descriptors>
<finalName>${assemblyFinalName}</finalName>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
<!-- https://issues.apache.org/jira/browse/UIMA-2008 -->
<!-- no Maven deployment of this project's artifacts -->
<!-- binary build artifact deployed from Apache mirror system after release -->
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>generate checksums for binary artifacts</id>
<goals>
<goal>run</goal>
</goals>
<phase>verify</phase>
<configuration>
<target>
<checksum algorithm="SHA-512" fileext=".sha512" format="MD5SUM" forceoverwrite="yes">
<fileset dir="${project.build.directory}">
<include name="*.zip" />
<include name="*.gz" />
</fileset>
</checksum>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ************************************ -->
<!-- * Build Eclipse Plugin * -->
<!-- ************************************ -->
<profile>
<id>build eclipse plugins</id>
<activation>
<file>
<exists>marker-file-identifying-eclipse-plugin</exists>
</file>
</activation>
<build>
<!-- resources are "merged" -->
<!-- needed to copy resources, icons, and the plugin.xml to the result -->
<resources>
<resource>
<directory>.</directory>
<includes>
<include>plugin.xml</include>
<!-- include subdir of icons too, [UIMA-1958] -->
<include>icons/**/*.*</include>
</includes>
</resource>
<!-- need the following, is not "merged" from the overall maven superPom -->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<pluginManagement>
<!--
run the felix plugin in manifest mode because that plugin doesn't resolve all properties
e.g., parsedVersion.osgiVersion
-->
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>uima-bundle</id>
<goals>
<goal>manifest</goal>
</goals>
<phase>process-classes</phase>
<configuration>
<!-- we put the generate manifest in the spot where Eclipse
plugins think it will be -->
<manifestLocation>META-INF/</manifestLocation>
</configuration>
</execution>
<!-- turn off unneeded executions -->
<execution>
<id>default-deploy</id>
<phase />
</execution>
<execution>
<id>default-install</id>
<phase />
</execution>
<execution>
<id>default-bundle</id>
<phase />
</execution>
</executions>
</plugin>
<!-- pick up the manifest felix generates -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<!-- special eclipse:eclipse configuration for Eclipse plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<manifest>.ignore</manifest>
<pde>true</pde>
<!-- set next to false because refs to runtime project
as a project don't work (because it is a library project,
and has no sources of its own
A consequence of this: If you change code a plugin depends on,
run "mvn install" on the changed code to get your plugin to
pick up the changes
-->
<useProjectReferences>false</useProjectReferences>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- https://issues.apache.org/jira/browse/UIMA-2967 -->
<execution>
<id>clear-META-INF</id>
<goals>
<goal>run</goal>
</goals>
<phase>compile</phase> <!-- before maven-bundle-plugin plugin -->
<configuration>
<target>
<delete file="META-INF/MANIFEST.MF" quiet="true" />
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Build OSGi bundle * -->
<!-- ********************************** -->
<profile>
<id>osgi-bundle</id>
<activation>
<file>
<exists>marker-file-identifying-osgi-bundle</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
<_dsannotations>*</_dsannotations>
<_metatypeannotations>*</_metatypeannotations>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<niceManifest>true</niceManifest>
<exportScr>true</exportScr>
<scrLocation>${project.basedir}/OSGI-INF/..</scrLocation>
<manifestLocation>${project.basedir}/META-INF</manifestLocation>
<!--
- Enabling this currently seems to cause spurious exceptions in Eclipse
<supportIncrementalBuild>true</supportIncrementalBuild>
-->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
<id>clean-manifest-and-osgiinf</id>
<configuration>
<filesets>
<fileset>
<directory>${project.basedir}/META-INF</directory>
<includes>
<include>**</include>
</includes>
</fileset>
<fileset>
<directory>${project.basedir}/OSGI-INF</directory>
<includes>
<include>**</include>
</includes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- *********************************** -->
<!-- * Eclipse: m2e lifecycle bindings * -->
<!-- *********************************** -->
<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 remote resources -->
<!-- ***************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>[1,)</versionRange>
<goals>
<goal>process</goal>
<goal>bundle</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- ***************************** -->
<!-- EXECUTE parse-date-time -->
<!-- ***************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-helper-maven-plugin</artifactId>
<versionRange>[2,)</versionRange>
<goals>
<goal>parse-date-time</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<!-- ******************************* -->
<!-- IGNORE dependency copy / unpack -->
<!-- ******************************* -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2,)</versionRange>
<goals>
<goal>unpack</goal>
<goal>copy-dependencies</goal>
<goal>unpack-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- *********************************************** -->
<!-- IGNORE enforcer - to avoid warning message -->
<!-- https://issues.apache.org/jira/browse/UIMA-3053 -->
<!-- *********************************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- ******************************* -->
<!-- IGNORE clearing old Manifest.MF -->
<!-- at top level, needed by -->
<!-- maven bundle plugin -->
<!-- ******************************* -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.6,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- *********************************************** -->
<!-- EXECUTE most javacc goals -->
<!-- *********************************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javacc-maven-plugin</artifactId>
<versionRange>[2,)</versionRange>
<goals>
<goal>javacc</goal>
<goal>jjtree-javacc</goal>
<goal>jjtree</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javacc-maven-plugin</artifactId>
<versionRange>[2,)</versionRange>
<goals>
<goal>jjdoc</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<!-- *********************************************** -->
<!-- The Maven Dev Connector for Eclipse m2e is no -->
<!-- longer maintained. We copy the relevant part -->
<!-- of the lifecycle mapping for the -->
<!-- maven-plugin-plugin here. -->
<!-- -->
<!-- See https://github.com/ifedorenko/com.ifedorenko.m2e.mavendev/blob/master/com.ifedorenko.m2e.mavendev/lifecycle-mapping-metadata.xml -->
<!-- *********************************************** -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<versionRange>[3.5.2,)</versionRange>
<goals>
<goal>descriptor</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<versionRange>[3.5.2,)</versionRange>
<goals>
<goal>helpmojo</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!-- ********************************** -->
<!-- * Code quality: spotbugs * -->
<!-- ********************************** -->
<profile>
<id>spotbugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<failOnError>false</failOnError>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Code quality: JaCoCo * -->
<!-- ********************************** -->
<profile>
<id>jacoco</id>
<properties>
<jacoco.argLine />
<maven.surefire.argLine />
<maven.surefire.java9 />
</properties>
<build>
<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>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<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>
<!-- ********************************** -->
<!-- * Code quality: PMD * -->
<!-- ********************************** -->
<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>
</execution>
</executions>
<configuration>
<linkXRef>false</linkXRef>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Backwards compatibility report * -->
<!-- ********************************** -->
<profile>
<id>enforce-compatibility</id>
<activation>
<file>
<exists>marker-file-identifying-api-compatibility-check</exists>
</file>
</activation>
<properties>
<japicmp.postAnalysisScript>${project.build.directory}/japicmp-resources/japicmp/api-report.groovy</japicmp.postAnalysisScript>
</properties>
<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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>provide-japicmp-postAnalysisScript</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/japicmp-resources/</outputDirectory>
<includes>japicmp/api-report.groovy</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- https://siom79.github.io/japicmp/MavenPlugin.html -->
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<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>${japicmp.postAnalysisScript}</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>
<!-- *********************************************** -->
<!-- * Enable Tycho * -->
<!-- *********************************************** -->
<profile>
<id>tycho</id>
<activation>
<property>
<name>!disable-tycho</name>
</property>
</activation>
<properties>
<tycho-version>4.0.1</tycho-version>
</properties>
</profile>
<!-- *********************************************** -->
<!-- * Enable Tycho during release builds * -->
<!-- *********************************************** -->
<profile>
<id>tycho-release</id>
<activation>
<property>
<name>!disable-tycho</name>
</property>
<file>
<exists>marker-file-enabling-tycho-release</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<!--
- Tycho-managed Eclipse files during release
-
- We do not need the 'org.apache.maven.plugins:maven-scm-plugin:1.9.5:checkin' goal
- here because the release plugin automatically commits twice during the 'prepare' phase
-->
<preparationGoals>
org.eclipse.tycho:tycho-versions-plugin:${tycho-version}:update-eclipse-metadata
org.apache.maven.plugins:maven-scm-plugin:1.9.5:add
</preparationGoals>
<completionGoals>
org.eclipse.tycho:tycho-versions-plugin:${tycho-version}:update-eclipse-metadata
org.apache.maven.plugins:maven-scm-plugin:1.9.5:add
</completionGoals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<!--
- Tycho-managed Eclipse files during release
-->
<id>default-cli</id>
<goals>
<goal>add</goal>
<goal>checkin</goal>
</goals>
<configuration>
<includes>
*-eclipse-*/META-INF/MANIFEST.MF,
*-eclipse-*/feature.xml,
*-eclipse-*/*.product,
*-eclipse-*/category.xml
</includes>
<excludes>**/target/**</excludes>
<message>Changing the Eclipse files versions</message>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- *********************************************** -->
<!-- * Enable Tycho in a module * -->
<!-- *********************************************** -->
<profile>
<id>tycho-module</id>
<activation>
<file>
<exists>marker-file-identifying-tycho-module</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<pomDependencies>consider</pomDependencies>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- *********************************************** -->
<!-- * Enable auto-staging of release artifacts * -->
<!-- * * -->
<!-- * Modules need to place their artifacts into * -->
<!-- * ${staging-local-root} * -->
<!-- *********************************************** -->
<profile>
<id>apache-release-rc-auto-staging-config</id>
<activation>
<property>
<name>!disable-rc-auto-staging</name>
</property>
</activation>
<properties>
<releaseCandidateNum />
<staging-scm-root>scm:svn:https://dist.apache.org/repos/dist/dev/uima/</staging-scm-root>
<staging-local-root>${project.build.directory}/staging</staging-local-root>
<staging-folder>${project.artifactId}-${project.version}-RC-${staging-timestamp}-${candidate-id}</staging-folder>
</properties>
</profile>
<profile>
<id>apache-release-rc-auto-staging</id>
<activation>
<property>
<name>!disable-rc-auto-staging</name>
</property>
<file>
<exists>marker-file-enabling-auto-staging</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-candidate-id</id>
<phase>initialize</phase>
<goals>
<goal>create</goal>
</goals>
<configuration>
<buildNumberPropertyName>candidate-id</buildNumberPropertyName>
<timestampPropertyName>staging-timestamp</timestampPropertyName>
<shortRevisionLength>7</shortRevisionLength>
<timestampFormat>yyyyMMddHHmm</timestampFormat>
<timezone>Z</timezone>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<id>checkout-staging</id>
<phase>${releaseStagingCheckoutPhase}</phase>
<goals>
<goal>checkout</goal>
</goals>
<configuration>
<connectionType>developerConnection</connectionType>
<developerConnectionUrl>${staging-scm-root}</developerConnectionUrl>
<checkoutDirectory>${staging-local-root}</checkoutDirectory>
</configuration>
</execution>
<execution>
<id>add-staging-files</id>
<phase>${releaseStagingCommitPhase}</phase>
<goals>
<goal>add</goal>
</goals>
<configuration>
<connectionType>developerConnection</connectionType>
<developerConnectionUrl>${staging-scm-root}</developerConnectionUrl>
<basedir>${staging-local-root}</basedir>
<includes>${staging-folder}/**/*</includes>
</configuration>
</execution>
<execution>
<id>commit-staging-files</id>
<phase>${releaseStagingCommitPhase}</phase>
<goals>
<goal>checkin</goal>
</goals>
<configuration>
<connectionType>developerConnection</connectionType>
<developerConnectionUrl>${staging-scm-root}</developerConnectionUrl>
<basedir>${staging-local-root}</basedir>
<message>Staging release artifacts for ${project.artifactId}-${project.version}-RC-${staging-timestamp}-${candidate-id}</message>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dependency-check</id>
<activation>
<property>
<name>!disable-dependency-check</name>
</property>
<file>
<exists>marker-file-enabling-dependency-check</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<phase>verify</phase>
<goals>
<goal>analyze-only</goal>
</goals>
</execution>
</executions>
<configuration>
<failOnWarning>true</failOnWarning>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>