blob: 636e1cb8a1dee0ba38037f04045f4b0957ec69c1 [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 is the common UIMA parent pom.
It contains the project-wide defaults:
The parent of this POM is the official common Apache POM
Defines repositories for
Snapshots - at Apache - used during development, and for docbook olinks
Eclipse - where the good poms are
Central - adds default check-the checksums
PluginManagement defaults:
Java 1.5 as the base
Javadoc at 1.5 too
Jar Manifest entries, including the build-time
AntRun to pick a later version of ant with support for ant extensions like "if"
Specify plugin levels for non-standard plugins:
RAT
eclipse
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>apache</artifactId>
<groupId>org.apache</groupId>
<version>13</version>
<relativePath />
</parent>
<groupId>org.apache.uima</groupId>
<artifactId>parent-pom</artifactId>
<version>6</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.</description>
<url>${uimaWebsiteUrl}</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>
http://mail-archives.apache.org/mod_mbox/uima-dev
</archive>
<otherArchives>
<otherArchive>
http://dir.gmane.org/gmane.comp.apache.uima.devel
</otherArchive>
<otherArchive>
http://uima.markmail.org
</otherArchive>
</otherArchives>
</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>
http://mail-archives.apache.org/mod_mbox/uima-user
</archive>
<otherArchives>
<otherArchive>
http://dir.gmane.org/gmane.comp.apache.uima.general
</otherArchive>
<otherArchive>
http://uima.markmail.org
</otherArchive>
</otherArchives>
</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>
http://mail-archives.apache.org/mod_mbox/uima-commits
</archive>
</mailingList>
</mailingLists>
<prerequisites>
<!-- 2.2.0 is broken when deploying - checksums invalid -->
<!-- 2.2.1 doesn't work -->
<maven>3.0</maven>
</prerequisites>
<scm>
<connection>
scm:svn:http://svn.apache.org/repos/asf/uima/build/tags/parent-pom-6-rc3
</connection>
<developerConnection>
scm:svn:https://svn.apache.org/repos/asf/uima/build/tags/parent-pom-6-rc3
</developerConnection>
<url>
http://svn.apache.org/viewvc/uima/build/tags/parent-pom-6-rc3
</url>
</scm>
<issueManagement>
<system>Jira</system>
<!-- the form of the url is from http://maven.apache.org/plugins/maven-changes-plugin/usage.html -->
<!--url>https://issues.apache.org/jira/BrowseProject.jspa?projectId=12310570</url-->
<url>https://issues.apache.org/jira/browse/UIMA</url>
</issueManagement>
<ciManagement>
<system>Jenkins</system>
<url>https://builds.apache.org/</url>
<notifiers />
</ciManagement>
<!-- distribution management - is inherited from Apache pom
and specifies
https://repository.apache.org/service/local/staging/deploy/maven2
and for snapshots:
https://repository.apache.org/content/repositories/snapshots -->
<!-- for children POMs maven automatically adds their artifactId to the URL below
unless overridden -->
<distributionManagement>
<site>
<id>uima.apache.org</id> <!-- following maven convention -->
<name>Apache UIMA Website</name>
<url>${uimaWebsiteDistributionUrl}</url> <!-- on people.apache.org: /www/uima.apache.org -->
</site>
</distributionManagement>
<properties>
<!-- this property is overridden in child projects that are released, to correspond to the
Jira release category(ies)
We specify something here, because if accidentally left blank, it
generates a giant request for all changes -->
<jiraVersion>12324673</jiraVersion> <!-- for parent-pom-5 change for each release -->
<uimaBuildResourcesVersion>5</uimaBuildResourcesVersion>
<uimaWebsiteUrl>http://uima.apache.org</uimaWebsiteUrl>
<uimaWebsiteDistributionUrl>scp://people.apache.org/www/uima.apache.org/</uimaWebsiteDistributionUrl>
<maven.build.timestamp.format>yyMMdd_HHmm</maven.build.timestamp.format>
<buildDateTime>${maven.build.timestamp}</buildDateTime>
<!-- these properties are for docbook processing. -->
<!-- olink databases -->
<dolArtifactId>uima-docbook-olink</dolArtifactId>
<dolClassifier>olink</dolClassifier>
<dolRepo>${settings.localRepository}/org/apache/uima/${dolArtifactId}/1-SNAPSHOT</dolRepo>
<dolZip>${dolArtifactId}-1-SNAPSHOT-${dolClassifier}.zip</dolZip>
<dolUnzipped>${dolRepo}/docbook-olink</dolUnzipped>
<dolBuiltFile>${project.build.directory}/</dolBuiltFile>
<dolBuiltArtifactFile>${project.build.directory}/${dolZip}</dolBuiltArtifactFile>
<pdfPaperType>USletter</pdfPaperType>
<!-- This next dir *must match* the one the PearPackagingMavenPlugin uses -->
<pearPackagingDir>${project.build.directory}/pearPackaging</pearPackagingDir>
<!-- 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>
<!-- next line commented out - to let standard source-release assembly descriptor as specified
in standard Apache parent pom be used -->
<!-- SourceReleaseAssemblyDescriptor>multimodule-source-release</sourceReleaseAssemblyDescriptor-->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- can't put this dependency at the top level -
causes them to be included in children -->
<!--dependencies>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>1-SNAPSHOT</version>
</dependency>
</dependencies-->
<repositories>
<!-- note: inheritance does *NOT* merge subparts,
so, redeclare them -->
<!-- define repositories for getting Eclipse parts
because the one in "central" gives broken parts -->
<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>
<build>
<pluginManagement>
<plugins>
<!-- assembly plugin
Disable running assembly:assembly with
warning message to use install instead -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<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>1.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<!-- force to use process-classes phase so runs after Java Annotations are available -->
<!-- https://issues.apache.org/jira/browse/UIMA-3072 -->
<id>default-descriptor</id>
<phase>process-classes</phase>
<goals><goal>descriptor</goal></goals>
</execution>
<execution>
</execution>
</executions>
</plugin>
<!-- set Java 1.5 as the source and target of compilation -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<!--encoding>UTF-8</encoding this inherited from apache pom 7 -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version> <!-- see https://issues.apache.org/jira/browse/UIMA-2963 -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- remove version after moving to apache parent pom 14 or later -->
<version>2.9.1</version> <!-- pick up fix for javadoc security issue, June 2013 -->
<configuration>
<source>5</source> <!-- needed to do Enums -->
<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
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>2.3.2</version> <!-- version 2.4 gives error org.codehaus.plexus.archiver.jar.Manifest.merge(org.codehaus.plexus.archiver.jar.Manifest)
see http://comments.gmane.org/gmane.comp.ide.eclipse.plugins.m2eclipse.user/9189 -->
<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>http://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>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<!-- version 1.8.0 seems to be incompatible with some part of maven or m2eclipse -->
<version>1.7.1</version>
</dependency>
<dependency> <!-- for ant extension supporting "if" -->
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<scope>runtime</scope>
</dependency>
<!-- next two enable <containsregexp> form for filesets -->
<dependency>
<groupId>ant</groupId>
<artifactId>ant-apache-regexp</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>jakarta-regexp</groupId>
<artifactId>jakarta-regexp</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
</plugin>
<!-- deprecated - move to m2eclipse, but keeping for now -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<downloadSources>true</downloadSources>
</configuration>
</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.3.7</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>
<executions>
<execution>
<id>default-cli</id>
<goals><goal>check</goal></goals>
<phase>verify</phase>
<!-- default configuration -->
<configuration>
<excludes>
<exclude>release.properties</exclude> <!-- generated file -->
<exclude>README*</exclude>
<exclude>RELEASE_NOTES*</exclude>
<exclude>issuesFixed/**</exclude> <!-- generated file -->
<exclude>src/main/resources/docbook-shared/titlepage/*.xsl</exclude>
<exclude>marker-file-identifying-*</exclude> <!-- empty file -->
<exclude>DEPENDENCIES</exclude> <!-- generated file -->
<exclude>**/*/MANIFEST.MF</exclude> <!-- MANIFEST.MF files cannot have comments -->
</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.8</version> <!-- Apache-wide pom has no entry for this plugin -->
<executions>
<execution>
<id>default-cli</id>
<goals><goal>jira-report</goal></goals>
<!-- don't use generate-sources - because javadoc plugin re-exec's that -->
<phase>generate-resources</phase>
<configuration>
<useJql>true</useJql>
<fixVersionIds>${jiraVersion}</fixVersionIds>
<columnNames>Type,Key,Status,Summary</columnNames>
<resolutionIds>Fixed</resolutionIds>
<statusIds>Closed,Resolved</statusIds>
<sortColumnNames>Type, Key</sortColumnNames>
<!-- changed sortColumnNames for Jira 5
was: <sortColumnNames>Status, Key, Type</sortColumnNames>
-->
<outputDirectory>${basedir}/issuesFixed/</outputDirectory>
<maxEntries>1000</maxEntries> <!-- hopefully, bigger than ever needed -->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-helper-maven-plugin</artifactId>
<version>6</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0</version>
</requireMavenVersion>
<requireJavaVersion>
<version>1.5</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>
<!--dependencies> maybe for m2e
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies-->
</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>
</properties>
<build>
<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>
</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>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- *************************************************** -->
<!-- * Run Rat report - for Jenkins * -->
<!-- * https://issues.apache.org/jira/browse/UIMA-2590 * -->
<!-- *************************************************** -->
<profile>
<id>run-rat-report</id>
<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>
<!-- **************************************** -->
<!-- * Produce Jira report * -->
<!-- **************************************** -->
<profile>
<id>mavenJirareport</id>
<activation>
<!-- NOTE: if you try to make this work more generally, by
using a marker file in all top-level release projects,
this approach fails because for other top-level
release projects, it substitutes the value of
the jiraVersion property from the top level pom, not
the pom being released. So other release projects include
this kind of profile within themselves, in a profile
for "apache-release" triggered by name. -->
<!-- It would be nice to have this only run when releasing,
but the activation clauses are currently only
"ored" together, not "anded". -->
<file><exists>marker-file-identifying-parent-pom</exists></file>
</activation>
<build>
<plugins>
<!-- overrides to enable release -->
<!-- to release 5-SNAPSHOT which includes uima-build-resources, hard code that version to 4 -->
<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>
<artifactId>maven-assembly-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-changes-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<fixVersionIds>${jiraVersion}</fixVersionIds>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- **************************************** -->
<!-- * Override - don't produce Jira report * -->
<!-- **************************************** -->
<!-- NOTE: if you use this, you MUST check in
the generated Jira report into SVN, otherwise
it won't appear in the release assemblies. -->
<profile>
<id>mavenJirareportSkip</id>
<activation>
<property>
<name>maven.jiraReport.skip</name>
</property>
</activation>
<build>
<plugins>
<!-- Skip jira report -->
<plugin>
<artifactId>maven-changes-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<phase />
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Docbook Processing * -->
<!-- ********************************** -->
<!-- Skip docbook processing unless
the leaf child project has a docbook directory -->
<profile>
<id>process-docbook</id>
<activation>
<file><exists>src/docbook</exists></file>
</activation>
<!--dependencies-->
<!-- can't have a dependency in the parent pom - unless you want it
inherited by all child poms -->
<!-- dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>1-SNAPSHOT</version>
</dependency -->
<!-- having a dependency specified on 1-SNAPSHOT blocks release -->
<!--dependency>
<groupId>org.apache.uima</groupId>
<artifactId>${dolArtifactId}</artifactId>
<type>zip</type>
<classifier>${dolClassifier}</classifier>
<version>1-SNAPSHOT</version>
</dependency-->
<!--/dependencies-->
<build>
<plugins>
<!-- something to set some properties for dates used in copyright notices -->
<!-- Works, but is slow due to loading groovy -->
<!--plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
import java.util.Date
import java.text.MessageFormat
def varYear = MessageFormat.format("{0,date,yyyy}", new Date())
def varMonth = MessageFormat.format("{0,date,MMMMMMMMM}", new Date())
project.properties['buildYear'] = varYear
project.properties['buildMonth'] = varMonth
</source>
</configuration>
</execution>
</executions>
</plugin-->
<!-- use the dependency:unpack goal to get the shared resource
that has the docbook-shared directory
Unpack into spot relative to project - because
these are referred to in docbook sources using
relative references
also unpack next to docbook-olink in
repository location for olink info, because
the site.xml files use relative location to
get at the uima entities -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<!-- use the dependency:unpack goal to get the shared resource
that has the docbook-shared directory
Unpack into spot relative to project - because
these are referred to in docbook sources using
relative references -->
<id>copyDocbookInfo</id>
<phase>prepare-package</phase>
<goals><goal>unpack</goal></goals>
<configuration>
<overWriteIfNewer>true</overWriteIfNewer>
<artifactItems>
<artifactItem>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
<includes>docbook-shared/**</includes>
<outputDirectory>${project.build.directory}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<!-- also unpack next to docbook-olink in
repository location for olink info, because
the site.xml files use relative location to
get at the uima entities -->
<id>copyDocbookInfoNextToOlink</id>
<phase>prepare-package</phase>
<goals><goal>unpack</goal></goals>
<configuration>
<overWriteIfNewer>true</overWriteIfNewer>
<markersDirectory>${dolRepo}/dependency-maven-plugin-markers</markersDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
<includes>docbook-shared/**</includes>
<outputDirectory>${dolRepo}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- use the dependency:unpack goal to get the
olink databases -->
<execution>
<id>getOlink</id>
<phase>prepare-package</phase>
<goals><goal>unpack</goal></goals>
<configuration>
<overWriteIfNewer>true</overWriteIfNewer>
<markersDirectory>${dolRepo}/dependency-maven-plugin-markers</markersDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.uima</groupId>
<artifactId>${dolArtifactId}</artifactId>
<version>1-SNAPSHOT</version>
<type>zip</type>
<classifier>${dolClassifier}</classifier>
<outputDirectory>${dolUnzipped}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.14</version>
<configuration> <!-- general configuration for both html and pdf -->
<sourceDirectory>${basedir}/src/docbook</sourceDirectory>
<includes>${bookNameRoot}.xml</includes>
<highlightSource>1</highlightSource>
<xincludeSupported>true</xincludeSupported>
<!-- olink common to pdf and html -->
<collectXrefTargets>yes</collectXrefTargets>
</configuration>
<executions>
<execution>
<id>html</id>
<goals>
<goal>generate-html</goal>
</goals>
<phase>package</phase>
<configuration>
<targetDirectory>${project.build.directory}/site/d</targetDirectory>
<htmlCustomization>${project.build.directory}/docbook-shared/top/html-single.xsl</htmlCustomization>
<!-- olink -->
<targetDatabaseDocument>file:///${dolUnzipped}/htmlsingle/site.xml</targetDatabaseDocument>
<targetsFilename>${dolUnzipped}/htmlsingle/${bookNameRoot}.db</targetsFilename>
</configuration>
</execution>
<execution>
<id>pdf</id>
<goals><goal>generate-pdf</goal></goals>
<phase>package</phase>
<configuration>
<!-- pdf: generate first in docbkx, then move.
because pdf generates an extra temp file xxx.fo
which we want to keep a bit in target in case of debug need -->
<foCustomization>${project.build.directory}/docbook-shared/top/pdf.xsl</foCustomization>
<!-- olink -->
<targetDatabaseDocument>file:///${dolUnzipped}/pdf/site.xml</targetDatabaseDocument>
<targetsFilename>${dolUnzipped}/pdf/${bookNameRoot}.db</targetsFilename>
<fop1Extensions>true</fop1Extensions>
<fontSelectionStrategy>character-by-character</fontSelectionStrategy>
<fonts>
<!-- embedded fonts -->
<!--
This information must exactly match the font specified
in the fo file. Otherwise it will use a default font.
For example,
<fo:inline font-family="Arial" font-weight="bold" font-style="normal">
Arial-normal-normal font
</fo:inline>
for the font triplet specified by:
<font-triplet name="Arial" style="normal" weight="bold" />
If you do not want to embed the font in the pdf document
then do not include the "embed-url" attribute.
The font will be needed where the document is viewed
for it to be displayed properly.
possible styles: normal | italic | oblique | backslant
possible weights: normal | bold | 100 | 200 | 300 | 400
| 500 | 600 | 700 | 800 | 900
(normal = 400, bold = 700)
-->
<!--
<font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
<font-triplet name="Arial" style="normal" weight="normal" />
<font-triplet name="ArialMT" style="normal" weight="normal" />
</font>
<font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
<font-triplet name="Arial" style="normal" weight="bold" />
<font-triplet name="ArialMT" style="normal" weight="bold" />
</font>
-->
<!-- per UIMA-1051 - change to use standard Times Roman default PDF font -->
<!--font>
<name>Palatino</name>
<style>normal</style>
<weight>normal</weight>
<kerning>yes</kerning>
<embedFile>c:/Windows/Fonts/pala.TTF</embedFile>
<metricsFile>${project.build.directory}/docbook-shared/fonts/palatino.xml</metricsFile>
</font>
<font>
<name>Palatino</name>
<style>normal</style>
<weight>bold</weight>
<kerning>yes</kerning>
<embedFile>c:/Windows/Fonts/palab.TTF</embedFile>
<metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-bold.xml</metricsFile>
</font>
<font>
<name>Palatino</name>
<style>italic</style>
<weight>normal</weight>
<kerning>yes</kerning>
<embedFile>c:/Windows/Fonts/palai.TTF</embedFile>
<metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-italic.xml</metricsFile>
</font>
<font>
<name>Palatino</name>
<style>italic</style>
<weight>bold</weight>
<kerning>yes</kerning>
<embedFile>c:/Windows/Fonts/palabi.TTF</embedFile>
<metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-bold-italic.xml</metricsFile>
</font-->
</fonts>
<paperType>${pdfPaperType}</paperType>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>4.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- copy the images to the html/images dir -->
<execution>
<id>docbook-copy-images</id>
<goals><goal>copy-resources</goal></goals>
<phase>package</phase>
<configuration>
<outputDirectory>${project.build.directory}/site/d/images</outputDirectory>
<resources>
<resource><directory>src/docbook/images</directory></resource>
</resources>
</configuration>
</execution>
<!-- copy the css stylesheet to the html dir -->
<execution>
<id>docbook-copy-css</id>
<goals><goal>copy-resources</goal></goals>
<phase>package</phase>
<configuration>
<outputDirectory>${project.build.directory}/site/d/css</outputDirectory>
<resources>
<resource><directory>${project.build.directory}/docbook-shared/css</directory></resource>
</resources>
</configuration>
</execution>
<!-- move the pdf from the docbkx to the site/d/ -->
<execution>
<id>docbook-move-pdf</id>
<goals><goal>copy-resources</goal></goals> <!-- no "move" goal, use copy -->
<phase>package</phase>
<configuration>
<outputDirectory>${project.build.directory}/site/d</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/docbkx/pdf</directory>
<excludes><exclude>**.fo</exclude></excludes>
</resource>
</resources>
</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 plugin
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="sha1" format="MD5SUM">
<fileset dir="${project.build.directory}">
<include name="*.zip" />
<include name="*.gz" />
</fileset>
</checksum>
<checksum algorithm="md5" format="MD5SUM">
<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>
<finalName>${project.artifactId}_${parsedVersion.osgiVersion}</finalName>
<!-- 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>
<!-- version set in parent-pom-top -->
<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> <!-- https://issues.apache.org/jira/browse/UIMA-2966 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<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>
<!-- 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 Eclipse Feature * -->
<!-- ************************************ -->
<profile>
<id>build eclipse features</id>
<activation>
<file>
<exists>marker-file-identifying-eclipse-feature</exists>
</file>
</activation>
<build>
<finalName>${project.artifactId}_${parsedVersion.osgiVersion}</finalName>
<!-- turn on filtering for these resources -->
<resources>
<resource>
<directory>${basedir}</directory>
<includes>
<include>feature.properties</include>
<include>feature.xml</include>
<include>uima-eclipse-user-agreement.html</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<!-- The feature.xml is filtered here, rather than in going from the
top level place to the Jar, because Eclipse feature manipulation
uses the top level value.
-->
<plugins>
<!-- filter the feature.xml to have the right version info
for Eclipse at the top level -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>filter feature.xml</id>
<!-- run before process-resources, which uses this result -->
<phase>generate-resources</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${basedir}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes><include>feature.xml</include></includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ************************************ -->
<!-- * Build Eclipse Update Subsite * -->
<!-- ************************************ -->
<profile>
<id>build-eclipse-update-subsite</id>
<activation>
<file>
<exists>marker-file-identifying-eclipse-update-site</exists>
</file>
</activation>
<properties>
<eusWork>${project.build.directory}/eus-work</eusWork>
<toBePacked>${project.build.directory}/toBePacked</toBePacked>
<distsvnroot>https://dist.apache.org/</distsvnroot>
<!-- <distsvnroot>file:///svn/t/</distsvnroot> -->
</properties>
<build>
<plugins>
<!-- ============================================================================ -->
<!-- U s e o f d i s t . a p a c h e . o r g S V N -->
<!-- -->
<!-- Goals: avoid copying to /release/, use svn commit to do -->
<!-- just the changed files -->
<!-- for safety, work in the /dev/ area -->
<!-- For vote, user can do commit to /dev/ area -->
<!-- After vote, user does svn switch to /release/ area and commits -->
<!-- -->
<!-- svn (release) -> svn (dev) -> checkout + -->
<!-- srcs -> toBePacked -> eus-work - - - - +-> subsite -> (manual) commit -->
<!-- SC SC -->
<!-- -->
<!-- SC = sign & checksum -->
<!-- the 2nd SC is for the updated artifacts and contents of the subsite -->
<!-- ============================================================================ -->
<!-- ============================================================================ -->
<!-- O v e r a l l F l o w -->
<!-- -->
<!-- PROCESS-SOURCES -->
<!-- New plugins to be compressed -> target/toBePacked -->
<!-- -->
<!-- New features to be included -> target/eus-work -->
<!-- (eus = Eclipse Update Site) -->
<!-- -->
<!-- filter category.xml to pick up version # -->
<!-- -->
<!-- PACKAGE -->
<!-- Pack step goes from target/toBePacked -> target/eus-work -->
<!-- -->
<!-- svn del in .../dev/... the eclipse-update-site/[componnt] -->
<!-- svn copy from .../release/ to dev the [component] -->
<!-- Dev SVN checkout -> target/eclipse-update-site/[component] -->
<!-- (This is the current site - to be updated) -->
<!-- -->
<!-- Publish metadata goes from target/eus-work -> eclipse-update-site/[comp] -->
<!-- (publish run in "append" mode) -->
<!-- -->
<!-- Category update goes from target/eus-work -> eclipse-update-site/[comp] -->
<!-- -->
<!-- (if apache-release: -->
<!-- do checksums and sign in target/eus-work -->
<!-- delete prev checksums and signature for artifacts/content.jar -->
<!-- add new checksum/sign for these two jars -->
<!-- copy all checksums/signatures from eus-work -->
<!-- ) -->
<!-- -->
<!-- ============================================================================ -->
<!-- ============================================================================ -->
<!-- Alternate flow if apache-release is not defined - -->
<!-- skip getting previous update site from dist.apache.org -->
<!-- ============================================================================ -->
<!-- filter the category.xml to have the right version info
for Eclipse at the top level-->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>filter-category.xml</id>
<!-- run before package, which uses this result -->
<phase>process-sources</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${basedir}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes><include>category.xml</include></includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>BuildUpdateSite-clearWorkAreas</id>
<phase>initialize</phase>
<goals><goal>run</goal></goals>
<configuration>
<target>
<delete dir="${toBePacked}" quiet="true" />
<delete dir="${eusWork}" />
</target>
</configuration>
</execution>
<execution>
<id>BuildUpdateSite-pack-svnget-buildMetadata-commit-to-dev</id>
<phase>package</phase>
<goals><goal>run</goal></goals>
<configuration>
<target>
<taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" />
<!-- =================================== -->
<!-- Check we can access build tools -->
<!-- =================================== -->
<!-- if the property uima-maven-build-eclipse-home is set, use it, otherwise don't -->
<condition property="eclipse.home" value="${uima-maven-build-eclipse-home}">
<not>
<equals arg1="${uima-maven-build-eclipse-home}" arg2="$${uima-maven-build-eclipse-home}" />
</not>
</condition>
<property environment="envVar" />
<condition property="eclipse.home" value="${envVar.ECLIPSE_HOME}">
<isset property="envVar.ECLIPSE_HOME" />
</condition>
<fail unless="eclipse.home" message="********** Please set up and use an ant property eclipse.home set to an Eclipse installation at level 3.3 or later, e.g. c:/eclipses/3.3/eclipse" />
<fail unless="uima-eclipse-jar-processor" message="********** Please add to your settings.xml file the property uima-eclipse-jar-processor, point to this within an Eclipse installation at level 4.2 or later, e.g. \$\{uima-maven-build-eclipse-home\}/plugins/org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110808-1657.jar" />
<!-- =================================== -->
<!-- SVN remote copy from release to dev -->
<!-- and checkout to subsite -->
<!-- =================================== -->
<if>
<isset property="apacheRelease" />
<then>
<echo>copying svn dist release to dev for eclipse update subsite ${eclipseUpdateSiteComponent}</echo>
<exec executable="svn">
<arg value="delete" />
<arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${eclipseUpdateSiteComponent}" />
<arg value="--force" />
<arg value="-m" />
<arg value="prepare for building eclipse update site component ${eclipseUpdateSiteComponent}" />
</exec>
<exec executable="svn">
<arg value="copy" />
<arg value="${distsvnroot}repos/dist/release/uima/eclipse-update-site/${eclipseUpdateSiteComponent}" />
<arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/" />
<arg value="-m" />
<arg value="prepare for building eclipse update site component ${eclipseUpdateSiteComponent}" />
</exec>
<echo>checking out eclipse update subsite ${eclipseUpdateSiteComponent} from dist ...dev...</echo>
<delete dir="${eclipseUpdateSubSite}" />
<exec executable="svn">
<arg value="checkout" />
<arg value="--quiet" />
<arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${eclipseUpdateSiteComponent}" />
<arg value="${eclipseUpdateSubSite}" />
</exec>
</then>
<else>
<echo>skipping (because not apache-release) copying svn dist release to dev for eclipse update subsite ${eclipseUpdateSiteComponent}</echo>
</else>
</if>
<echo>Compress plugin Jars using pack200 - this may take a minute or 2</echo>
<java jar="${uima-eclipse-jar-processor}" fork="true" failonerror="true" maxmemory="256m">
<arg line="-processAll" />
<arg line="-repack" />
<arg line="-pack" />
<arg line="-verbose" />
<!-- only pack the plugins. The publisher won't copy packed "features",
they are tiny anyways -->
<arg line="-outputDir ${eusWork}/plugins" />
<arg line="${toBePacked}" />
</java>
<!-- copy also the original unpacked jars to the subsite in the plugins dir -->
<copy todir="${eusWork}/plugins">
<fileset dir="${toBePacked}" />
</copy>
<echo>Generate p2 metadata</echo>
<java jar="${eclipse-equinox-launcher}" fork="true" failonerror="true" maxmemory="256m">
<arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
<arg line="-metadataRepository file:///${eclipseUpdateSubSite}" />
<arg line="-artifactRepository file:///${eclipseUpdateSubSite}" />
<arg line="-source ${eusWork}" />
<arg line="-configs ANY.ANY.ANY" />
<arg line="-publishArtifacts" />
<arg line="-reusePack200Files" />
<arg line="-compress" />
<arg line="-append" />
</java>
<echo>Generate category information</echo>
<java jar="${eclipse-equinox-launcher}" fork="true" failonerror="true" maxmemory="256m">
<arg line="-application org.eclipse.equinox.p2.publisher.CategoryPublisher" />
<arg line="-metadataRepository file:///${eclipseUpdateSubSite}" />
<arg line="-categoryDefinition file:///${basedir}/category.xml" />
<arg line="-categoryQualifier apache-uima" />
<arg line="-compress" />
</java>
<!-- ========================================== -->
<!-- If apache-release, do checksums and sign -->
<!-- ========================================== -->
<if>
<equals arg1="${isApacheRelease}" arg2="true" />
<then>
<echo message="Generating checksums for new features and plugins" />
<checksum algorithm="sha1" format="MD5SUM">
<fileset dir="${eusWork}">
<include name="**/*.gz" />
<include name="**/*.jar" />
</fileset>
</checksum>
<checksum algorithm="md5" format="MD5SUM">
<fileset dir="${eusWork}">
<include name="**/*.gz" />
<include name="**/*.jar" />
</fileset>
</checksum>
<echo message="Generating gpg signatures for new features and plugins" />
<apply executable="gpg" dir="${eusWork}">
<arg value="--detach-sign" />
<arg value="--armor" />
<!-- batch flag needed to avoid gpg hang up -->
<arg value="--batch" />
<fileset dir="${eusWork}">
<include name="**/*.jar" />
<include name="**/*.jar.pack.gz" />
</fileset>
</apply>
<copy todir="${eclipseUpdateSubSite}">
<fileset dir="${eusWork}">
<include name="**/*.asc" />
<include name="**/*.md5" />
<include name="**/*.sha1" />
</fileset>
</copy>
<echo message="Clearing previous checksums and signatures for update artifacts.jar and content.jar" />
<delete dir="${eclipseUpdateSubSite}">
<include name="*.sha1" />
<include name="*.md5" />
<include name="*.asc" />
</delete>
<echo message="Generating checksums for updated artifacts.jar and content.jar" />
<checksum algorithm="sha1" format="MD5SUM">
<fileset dir="${eclipseUpdateSubSite}">
<include name="*.jar" />
</fileset>
</checksum>
<checksum algorithm="md5" format="MD5SUM">
<fileset dir="${eclipseUpdateSubSite}">
<include name="*.jar" />
</fileset>
</checksum>
<echo message="Generating gpg signatures for artifacts.jar and content.jar" />
<apply executable="gpg" dir="${eclipseUpdateSubSite}">
<arg value="--detach-sign" />
<arg value="--armor" />
<!-- batch flag needed to avoid gpg hang up -->
<arg value="--batch" />
<fileset dir="${eclipseUpdateSubSite}">
<include name="*.jar" />
</fileset>
</apply>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- **************************************** -->
<!-- * Build Simple Project Binary Assembly * -->
<!-- **************************************** -->
<!-- this profile holds common, factored-out settings for all
projects that are packaged as single projects
(that is, not as multi-module projects), typically Sandbox projects.
It builds, in addition to the standard artifacts and attachments,
a binary artifact, which includes:
- The main generated artifact, in the lib/ dir
- dependent artifacts needed at runtime (not otherwise provided), in the lib/ dir
- Lic/Not/Readme/releaseNotes from root dir
- generated documentation in the docs/ dir
At release time the standard Apache parent builds the
- "source-release" artifact, and the
- "javadocs" artifact
Conventions:
License/Notice for Jar: uses the standard license/notice
License/Notice for bin: uses the custom files from project top level
dependencies on other artifacts:
Specified as scope runtime or compile causes these to be included in the lib dir
-->
<profile>
<id>build simple project binary assembly</id>
<activation>
<file>
<exists>marker-file-identifying-single-project</exists>
</file>
</activation>
<build>
<plugins>
<!-- ********************************************* -->
<!-- * Common Build -->
<!-- * *** FOR addons only *** -->
<!-- ********************************************* -->
<!-- * Base Jar is built, -->
<!-- * has no dependencies included -->
<!-- * has basic LICENSE/NOTICE files -->
<!-- * Base augmented dir built -->
<!-- * has Base Jar in lib/ -->
<!-- * has dependencies in lib/ -->
<!-- * has other things that go into PEAR -->
<!-- * except the pear install.xml -->
<!-- * has augmented LICENSE/NOTICE files -->
<!-- * -->
<!-- * This base is reused to make packages: -->
<!-- * PEAR - adds the install.xml -->
<!-- * - actually, the PEAR builder -->
<!-- * will redo the copies, itself -->
<!-- * OSGi - adds the OSGi manifest -->
<!-- * - removes the doc, javadocs -->
<!-- * individual zip/tar -->
<!-- * addons aggregate binary zip/tar -->
<!-- ********************************************* -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<!-- turn on javadoc build for each module -->
<phase>package</phase>
</execution>
</executions>
</plugin>
<!-- Build base -->
<!-- populate the lib dir with all needed dependencies
that will be distributed with this component
NOTE: TRANSITIVE DEPENDENIES ARE NOT INCLUDED
ANYTHING YOU WANT INCLUDED IN THE JAR
PLEASE LIST EXPLICITLY AND MODIFY THE LICENSE/NOTICE
APPROPRIATELY
Runs during process-resources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!-- Copy the dependencies to the target/base-bin/lib folder -->
<execution>
<id>copy dependencies to base-bin/lib</id>
<goals><goal>copy-dependencies</goal></goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/base-bin/lib</outputDirectory>
<includeScope>runtime</includeScope>
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- add directories if they exist -->
<execution>
<id>copy standard dirs and files to base-bin</id>
<goals><goal>copy-resources</goal></goals>
<phase>process-resources</phase> <!-- required -->
<configuration>
<outputDirectory>${project.build.directory}/base-bin</outputDirectory>
<resources>
<resource>
<directory>.</directory>
<includes>
<include>desc/**</include>
<include>conf/**</include>
<include>data/**</include>
<include>doc/**</include>
<include>docs/**</include>
<include>resources/**</include>
<include>bin/**</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
<include>README*</include>
<include>readme*</include>
<include>RELEASE_NOTES*</include>
<include>ReleaseNotes*</include>
<include>issuesFixed/**</include>
</includes>
</resource>
<resource>
<directory>src/main/readme</directory>
</resource>
</resources>
</configuration>
</execution>
<!-- copy generated Jar to base-bin/lib spot -->
<execution>
<id>copy standard target jar to base-bin/lib</id>
<goals><goal>copy-resources</goal></goals>
<phase>pre-integration-test</phase> <!-- a phase after jar -->
<configuration>
<outputDirectory>${project.build.directory}/base-bin/lib</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes><include>*.jar</include></includes>
<excludes>
<exclude>*-sources.jar</exclude>
<exclude>*-osgi.jar</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
<!-- copy generated docbook artifacts -->
<execution>
<id>copy generated docbook artifacts to base-bin/doc folder</id>
<goals><goal>copy-resources</goal></goals>
<phase>pre-integration-test</phase> <!-- a phase after docbkx (package) phase -->
<configuration>
<outputDirectory>${project.build.directory}/base-bin/doc</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/site/d</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>binary-release</id> <!-- is "classifier" - match maven convention -->
<goals><goal>single</goal></goals>
<phase>integration-test</phase> <!-- after first copies from jar/docbk pkg -->
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<descriptorRefs>
<descriptorRef>
uima-single-project-bin2
</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uima-build-resources</artifactId>
<version>${uimaBuildResourcesVersion}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Build OSGi bundle * -->
<!-- ********************************** -->
<profile>
<id>build OSGi bundle for annotator</id>
<activation>
<file>
<exists>marker-file-identifying-osgi-project</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- copy the base-bin dir to the osgi dir -->
<execution>
<id>Copy base-bin to osgi</id>
<goals><goal>copy-resources</goal></goals>
<phase>integration-test</phase>
<configuration>
<outputDirectory>${project.build.directory}/osgi</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/base-bin</directory>
<includes><include>**</include></includes>
<excludes>
<exclude>doc/**</exclude>
<exclude>docs/**</exclude>
<exclude>**/*-javadoc.jar</exclude>
<exclude>issuesFixed/**</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- copy any uima dependencies needed to osgi/lib
beyond what is done for the common build.
NOTE: can't just add dependencies, because
a) local projects override scope to "provided" and
b) this would result in the jars being copied for
the common build -->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>Copy uima dependencies to osgi/lib</id>
<goals><goal>copy</goal></goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}/osgi/lib</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-core</artifactId>
<version>${uimaDependencyVersion}</version>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>uima-bundle</id>
<phase>integration-test</phase>
<goals><goal>manifest</goal></goals>
<configuration>
<buildDirectory>${project.build.directory}/osgi</buildDirectory>
<manifestLocation>${project.build.directory}/osgi/META-INF</manifestLocation>
<instructions>
<Import-Package>org.apache.log.*;resolution:=optional</Import-Package>
<Embed-Dependency>*;scope=compile;</Embed-Dependency>
<Embed-Directory>lib</Embed-Directory>
<Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
<Eclipse-ExtensibleAPI>true</Eclipse-ExtensibleAPI>
<Bundle-ClassPath>.,lib/${project.build.finalName}.jar,{maven-dependencies},lib/uimaj-core-${uimaDependencyVersion}.jar</Bundle-ClassPath>
<Include-Resource>
{maven-resources}, {maven-dependencies},
lib/uimaj-core-${uimaDependencyVersion}.jar=${settings.localRepository}/org/apache/uima/uimaj-core/${uimaDependencyVersion}/uimaj-core-${uimaDependencyVersion}.jar
</Include-Resource>
<Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton:=true</Bundle-SymbolicName>
</instructions>
</configuration>
</execution>
</executions>
</plugin>
<!-- Run JAR to create OSGi Jar -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>Create OSGi Jar</id>
<goals><goal>jar</goal></goals>
<phase>integration-test</phase> <!-- after above build step -->
<configuration>
<finalName>${project.groupId}.${project.artifactId}_${parsedVersion.osgiVersion}</finalName>
<classifier>osgi</classifier>
<classesDirectory>${project.build.directory}/osgi</classesDirectory>
<archive>
<manifestFile>${project.build.directory}/osgi/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- ********************************** -->
<!-- * Build Standard PEAR * -->
<!-- ********************************** -->
<profile>
<id>build standard PEAR</id>
<activation>
<file>
<exists>marker-file-identifying-standard-pear</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- add the contents of desc if it exists to the jar.
This puts the things like the WhitespaceTokenizer.xml file into the Jar
and makes it easier for users to run this, without installing a pear.
The Tagger project uses this technique, for instance -->
<execution>
<id>copy desc so its contents can be found in Jar</id>
<goals><goal>copy-resources</goal></goals>
<phase>process-resources</phase> <!-- required -->
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>desc</directory>
<includes><include>**</include></includes>
</resource>
</resources>
</configuration>
</execution>
<!-- copy the base-bin dir to the pearPackaging dir -->
<execution>
<id>Copy base-bin to pearPackaging</id>
<goals><goal>copy-resources</goal></goals>
<phase>integration-test</phase> <!-- after first copies from jar/docbk pkg -->
<configuration>
<outputDirectory>${project.build.directory}/pearPackaging</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/base-bin</directory>
<includes><include>**</include></includes>
<excludes>
<exclude>**/*-javadoc.jar</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<!-- turn on javadoc build for each module -->
<phase>package</phase>
</execution>
</executions>
</plugin>
<!-- build the PEAR -->
<plugin>
<groupId>org.apache.uima</groupId>
<artifactId>PearPackagingMavenPlugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<executions>
<execution>
<id>build uima annnotator Pear</id>
<goals><goal>package</goal></goals>
<!-- needs to run after the jar is built
after docbooks are packaged and copied to pearPackaging/doc folder -->
<phase>integration-test</phase> <!-- after first copies from jar/docbk pkg -->
<configuration>
<datapath>$main_root/resources</datapath>
<componentId>${project.artifactId}</componentId>
<mainComponentDesc>${pearMainDescriptor}</mainComponentDesc>
</configuration>
</execution>
</executions>
</plugin>
<!-- Attach PEAR artifact after PEAR is built -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-pear-artifact</id>
<phase>post-integration-test</phase>
<goals><goal>attach-artifact</goal></goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}.pear</file>
<type>pear</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</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 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>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
</project>