blob: 432da263807644047538efcdf14c48ca93d54f5a [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:
Parent 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>7</version>
<relativePath />
</parent>
<groupId>org.apache.uima</groupId>
<artifactId>parent-pom</artifactId>
<version>2</version>
<packaging>pom</packaging>
<name>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>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>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>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>
<!-- modules>
<module>../uima-build-resources</module>
</modules -->
<scm>
<connection>
scm:svn:http://svn.apache.org/repos/asf/uima/build/tags/parent-pom-2
</connection>
<developerConnection>
scm:svn:https://svn.apache.org/repos/asf/uima/build/tags/parent-pom-2
</developerConnection>
<url>
http://svn.apache.org/viewvc/uima/build/tags/parent-pom-2
</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>Hudson</system>
<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>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>12315582</jiraVersion> <!-- for parent-pom-1, override from the command line -->
<uimaBuildResourcesVersion>1</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>
<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>
<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>
</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>
<version>2.2</version>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<descriptors>
<descriptor>do-not-use--mvn-assembly-assembly--instead-use-mvn-install</descriptor>
</descriptors>
</configuration>
</execution>
<!-- these next insure version 2.2 is used for these executions -->
<!-- execution><id>source-release-assembly</id></execution>
<execution><id>uima-distr</id></execution>
<execution><id>binary-release</id></execution-->
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
</plugin>
<!-- set Java 1.5 as the source and target of compilation -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<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.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<source>5</source> <!-- needed to do Enums -->
<encoding>UTF-8</encoding>
</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 />
<configuration>
<!-- 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>
</execution>
<execution>
<id>javadocs-distr</id>
<configuration>
<!-- fix java api links because Oracle bought Sun -->
<javaApiLinks>
<property>
<name>api_1.5</name>
<value>http://download.oracle.com/javase/1.5.0/docs/api/</value>
</property>
</javaApiLinks>
<quiet>true</quiet>
<!-- if next is omitted, causes all projects in reactor that don't
already have full javadocs built, to have them built -->
<detectOfflineLinks>false</detectOfflineLinks>
<!-- 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>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</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>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>
<version>1.6</version>
<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.7</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.1.0</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.6</version>
<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 -->
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<!-- set release-plugin version to > than 2.0,
needed for "flat" hierarchy support -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<arguments>-Papache-release</arguments>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</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.3</version>
<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>
<fixVersionIds>${jiraVersion}</fixVersionIds>
<columnNames>Type,Key,Status,Summary</columnNames>
<resolutionIds>Fixed</resolutionIds>
<statusIds>Closed,Resolved</statusIds>
<sortColumnNames>Type,Key,Status</sortColumnNames>
<outputDirectory>${basedir}/issuesFixed/</outputDirectory>
<maxEntries>1000</maxEntries> <!-- hopefully, bigger than ever needed -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- 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>
<version>2</version>
<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:7 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>
</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>
<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>
<!-- **************************************** -->
<!-- * 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>
<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>1</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>1</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>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>unzipOlinkDbs</id>
<goals><goal>run</goal></goals>
<phase>prepare-package</phase>
<configuration>
<tasks>
<unzip src="${dolRepo}/${dolZip}" dest="${dolRepo}/docbook-olink" overwrite="false" />
</tasks>
</configuration>
</execution>
</executions>
</plugin-->
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.11</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 Standard PEAR * -->
<!-- ********************************** -->
<profile>
<id>build standard PEAR</id>
<activation>
<file>
<exists>marker-file-identifying-standard-pear</exists>
</file>
</activation>
<build>
<plugins>
<!-- 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/assembly-bin folder for the PEAR to copy -->
<execution>
<id>copy dependencies to lib</id>
<goals><goal>copy-dependencies</goal></goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${pearPackagingDir}/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 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 License/notice/readme/release/keys notes files into the Pear at the top level -->
<execution>
<id>Copy Pear Lic/Not/Readme/Relnotes</id>
<goals><goal>copy-resources</goal></goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${pearPackagingDir}</outputDirectory>
<resources>
<resource>
<directory>.</directory>
<includes>
<include>LICENSE*</include>
<include>NOTICE*</include>
<include>README*</include>
<include>readme*</include>
<include>RELEASE_NOTES*</include>
<include>ReleaseNotes*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<!-- copy generated Jar to pearPackaging/lib spot -->
<execution>
<id>copy standard sandbox target jar to pearPackaging/lib</id>
<goals><goal>copy-resources</goal></goals>
<phase>pre-integration-test</phase> <!-- a phase after jar -->
<configuration>
<outputDirectory>${pearPackagingDir}/lib</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes><include>*.jar</include></includes>
<excludes><exclude>*-sources.jar</exclude></excludes>
</resource>
</resources>
</configuration>
</execution>
<!-- copy generated docbook artifacts to pearPackaging/doc folder -->
<execution>
<id>copy generated docbook artifacts to pearPackaging/doc folder</id>
<goals><goal>copy-resources</goal></goals>
<phase>pre-integration-test</phase> <!-- a phase after docbkx (package) phase -->
<configuration>
<outputDirectory>${pearPackagingDir}/doc</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/docbkx</directory>
<excludes>
<exclude>**/*.fo</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.3.1</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>pre-integration-test</phase>
<configuration>
<datapath>$main_root/resources</datapath>
<componentId>${project.artifactId}</componentId>
<mainComponentDesc>${pearMainDescriptor}</mainComponentDesc>
</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>package</phase>
<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>
</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>
</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>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<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 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>
<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>
<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>pre-integration-test</phase> <!-- after package, after jar & docbkx built -->
<configuration>
<descriptorRefs>
<descriptorRef>
uima-single-project-bin
</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>
</profiles>
</project>