blob: 148b62eb0f0043ce58207951b0abdf0c114a0a46 [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<prerequisites>
<maven>2.2.0</maven>
</prerequisites>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj</artifactId>
<packaging>pom</packaging>
<version>2.3.0-incubating</version> <!-- this comment is a flag for changeVersion -->
<properties>
<!-- cannot use a property expression as the value here
causes recursive loop -->
<uimaj-release-version>2.3.0-incubating</uimaj-release-version> <!-- this comment is a flag for changeVersion -->
<uimaj-release-eclipse-version>2.3.0.incubating</uimaj-release-eclipse-version>
<scm.branch>trunk</scm.branch>
<scm.module.path />
<scmBranchPropertyName>${scm.branch}</scmBranchPropertyName>
</properties>
<name>Apache UIMA Java SDK</name>
<url>http://incubator.apache.org/uima</url>
<description>A framework and SDK supporting components for analyzing unstructured content such as text, audio
and video.</description>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>http://svn.apache.org/viewvc/incubator/uima</url>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/uima/uimaj/trunk</developerConnection>
</scm>
<organization>
<name>The Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<!-- project-wide dependency version levels can go here -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- list the modules for uima base release that are released together.
POMs that inherit this parent can then omit the release version -->
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-adapter-vinci</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-adapter-soap</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-core</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-cpe</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-examples</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-bootstrap</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-tools</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-document-annotation</artifactId>
<version>${uimaj-release-version}</version>
</dependency>
<!-- eclipse-versions -->
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-cas-editor</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-configurator</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-debug</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-jcasgen</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-pear-packager</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-ep-runtime</artifactId>
<version>${uimaj-release-eclipse-version}</version>
</dependency>
<!-- development tools, not in binary distribution -->
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-test-util</artifactId>
<version>${uimaj-release-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-component-test-util</artifactId>
<version>${uimaj-release-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- to deploy the artifacts to a Maven staging-repository you have to configure
the settings.xml file in your local Maven repository -->
<distributionManagement>
<repository>
<id>staging-repository</id>
<url>scpexe://people.apache.org/www/people.apache.org/repo/m2-incubating-repository/</url>
</repository>
<snapshotRepository>
<id>snapshot-repository</id>
<url>scpexe://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository/</url>
</snapshotRepository>
</distributionManagement>
<build>
<pluginManagement>
<plugins>
<!-- 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>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.6</version>
<configuration>
<source>5</source> <!-- needed to do Enums -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Project-Title>Apache UIMA</Project-Title>
<Implementation-Title>${pom.name}</Implementation-Title>
<Implementation-Version>${pom.version}</Implementation-Version>
<Implementation-Vendor>Apache Software Foundation</Implementation-Vendor>
<Implementation-Url>${pom.url}</Implementation-Url>
<Implementation-License>http://www.apache.org/licenses/LICENSE-2.0.txt</Implementation-License>
<Build-Date>${buildNumber}</Build-Date>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<!-- put this dependency first -->
<!-- otherwise you get ant 1.5 from ant-contrib -->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.1</version>
<scope>runtime</scope>
</dependency>
<dependency> <!-- for ant extension supporting "if" -->
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
<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.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>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- We use an ant task to copy the LICENSE, NOTICE, and DISCLAIMER files
from a single location in uimaj-distr into the src/main/resources/META-INF
directory of all components. We tried using the Maven resources plugin for
this, but then the Maven eclipse plugin (which runs the lifecycle up thru
generate-resources) seeing the <resources> element,
adds a classpath src entry for this which references the path outside
the project, which eclipse doesn't want.
Solution is to run this in a life-cycle phase after generate-resources
(i.e., process-resources), but before compile, so the
eclipse plugin doesn't do this action.
We copy to the src directory so that it is there for the source jar
builds (for Maven repo). We also copy to the target/classes/META-INF
directory so it gets picked up by the binary jar as well.-->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>CopyLicenseNoticeDisclaimer</id>
<phase>process-resources</phase>
<configuration>
<tasks>
<!-- skip if no src/main/java dir -->
<condition property="sourceForLicenseNoticeDisclaimer"
value="skip"> <!-- value must be a non-existant file name
blank doesn't work (copies everything)-->
<!--not> <available file="src/main/java"/> </not-->
<not>
<equals arg1="jar" arg2="${project.packaging}"></equals>
</not>
</condition>
<!-- only sets property if not set by previous above statement -->
<property name="sourceForLicenseNoticeDisclaimer"
value="LICENSE NOTICE DISCLAIMER LICENSE.txt NOTICE.txt DISCLAIMER.txt"/>
<!-- use LIC/NOT/DIS file from project if available -->
<condition property="dirSourceForLicenseNoticeDisclaimer"
value=".">
<or>
<available file="LICENSE.txt"/>
<available file="LICENSE"/>
</or>
</condition>
<!-- use LIC/NOT/DIS file from project's parent if available & above not available -->
<condition property="dirSourceForLicenseNoticeDisclaimer"
value="${project.parent.relativePath}/src/main/readme">
<or>
<available file="${project.parent.relativePath}/src/main/readme/LICENSE.txt"/>
<available file="${project.parent.relativePath}/src/main/readme/LICENSE"/>
</or>
</condition>
<!-- use LIC/NOT/DIS file from uimaj-distr project if above not available -->
<condition property="dirSourceForLicenseNoticeDisclaimer"
value="../uimaj-distr/src/main/readme">
<or>
<available file="../uimaj-distr/src/main/readme/LICENSE.txt"/>
<available file="../uimaj-distr/src/main/readme/LICENSE"/>
</or>
</condition>
<!-- support POMs nested one deep -->
<!--available property="dirSourceForLicenseNoticeDisclaimer"
file="../uimaj-distr/src/main/readme"
value="../uimaj-distr/src/main/readme"/-->
<!-- only sets property if not set by previous statements -->
<property name="dirSourceForLicenseNoticeDisclaimer"
value="../../uimaj-distr/src/main/readme"/>
<copy todir="src/main/resources/META-INF">
<fileset dir="${dirSourceForLicenseNoticeDisclaimer}"
includes="${sourceForLicenseNoticeDisclaimer}"/>
</copy>
<copy todir="target/classes/META-INF">
<fileset dir="${dirSourceForLicenseNoticeDisclaimer}"
includes="${sourceForLicenseNoticeDisclaimer}"/>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- after compilation has been done and the files have been copied to the
target directory, delete them from the source directory. -->
<execution>
<id>DeleteLicenseNoticeDisclaimer</id>
<phase>package</phase>
<configuration>
<tasks>
<typedef resource="net/sf/antcontrib/antlib.xml">
<classpath refid="maven.dependency.classpath"/>
</typedef> <!-- set up ant-contrib extensions -->
<delete deleteOnExit="true" quiet="true" failOnError="false">
<fileset dir="src/main/resources/META-INF"
includes="LICENSE NOTICE DISCLAIMER LICENSE.txt NOTICE.txt DISCLAIMER.txt"/>
</delete>
<macrodef name="rmvUnusedDirs">
<attribute name="dir"/>
<attribute name="dirId"/>
<sequential>
<!-- defaultexcludes set to no to retain dirs which were checked into svn
they have .svn files
If these are deleted by this script, svn can't find the svn metadata
-->
<fileset id="@{dirId}" dir="@{dir}" defaultexcludes="no"/>
<if>
<and>
<available file="@{dir}"/>
<resourcecount refid="@{dirId}" count="0" when="equal"/>
</and>
<then> <delete dir="@{dir}"/> </then>
</if>
</sequential>
</macrodef>
<rmvUnusedDirs dir="src/main/resources/META-INF" dirId="src.meta.inf.dir"/>
<rmvUnusedDirs dir="src/main/resources" dirId="src.main.resources.dir"/>
<rmvUnusedDirs dir="src/main" dirId="src.main.dir"/>
<rmvUnusedDirs dir="src" dirId="src.dir"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- also delete on clean. -->
<execution>
<id>CleanLicenseNoticeDisclaimer</id>
<phase>clean</phase>
<configuration>
<tasks>
<typedef resource="net/sf/antcontrib/antlib.xml">
<classpath refid="maven.dependency.classpath"/>
</typedef> <!-- set up ant-contrib extensions -->
<delete deleteOnExit="true" quiet="true" failOnError="false">
<fileset dir="src/main/resources/META-INF"
includes="LICENSE NOTICE DISCLAIMER"/>
</delete>
<macrodef name="rmvUnusedDirs">
<attribute name="dir"/>
<attribute name="dirId"/>
<sequential>
<fileset id="@{dirId}" dir="@{dir}" defaultexcludes="no"/>
<if>
<and>
<available file="@{dir}"/>
<resourcecount refid="@{dirId}" count="0" when="equal"/>
</and>
<then> <delete dir="@{dir}"/> </then>
</if>
</sequential>
</macrodef>
<rmvUnusedDirs dir="src/main/resources/META-INF" dirId="src.meta.inf.dir"/>
<rmvUnusedDirs dir="src/main/resources" dirId="src.main.resources.dir"/>
<rmvUnusedDirs dir="src/main" dirId="src.main.dir"/>
<rmvUnusedDirs dir="src" dirId="src.dir"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- something to get the timestamp -->
<!-- this plugin sets the output string into the variable buildNumber -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,date,yyyy-MM-dd HH:mm:ss}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
</plugin>
</plugins>
</build>
<!-- This section configures what happens when the site life-cycle is done -->
<!-- This is currently not part of our build/release practice - so is never done -->
<!-- The Java Doc configuration here is for "developers" - and includes more packages, such as the internal ones -->
<!-- There is another JavaDoc configuration in the uimaj-distr POM, for doing javadocs for external APIs in the bin distr -->
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<aggregate>true</aggregate>
<!-- needs to be 5 to process enums -->
<source>5</source>
<doctitle>Apache UIMA Java SDK ${pom.version} API Documentation</doctitle>
<windowtitle>Apache UIMA Java SDK ${pom.version} API Documentation</windowtitle>
<maxmemory>512M</maxmemory>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
<excludePackageNames>org.apache.uima.test.junit_extension</excludePackageNames>
<groups>
<group>
<title>Core Framework</title>
<packages>org.apache.uima:org.apache.uima.impl:org.apache.uima.analysis_component:org.apache.uima.analysis_engine*:org.apache.uima.cas*:org.apache.uima.collection*:org.apache.uima.ecore:org.apache.uima.flow*:org.apache.uima.internal*:org.apache.uima.jcas*:org.apache.uima.pear.tools:org.apache.uima.pear.util:org.apache.uima.resource*:org.apache.uima.search*:org.apache.uima.tttypesystem:org.apache.uima.uimacpp:org.apache.uima.util*</packages>
</group>
<group>
<title>Collection Processing Engine</title>
<packages>org.apache.uima.collection.impl*:org.apache.uima.cas_data.impl.vinci</packages>
</group>
<group>
<title>SOAP Adapter</title>
<packages>org.apache.uima.adapter.soap*</packages>
</group>
<group>
<title>Vinci Adapter</title>
<packages>org.apache.uima.adapter.vinci*</packages>
</group>
<group>
<title>Tools</title>
<packages>org.apache.uima.tools*:org.apache.uima.klt</packages>
</group>
<group>
<title>Eclipse Plugins</title>
<packages>org.apache.uima.taeconfigurator*:org.apache.uima.typesystem*:org.apache.uima.ep_debug:org.apache.uima.jcas.jcasgenp:org.apache.uima.pear:org.apache.uima.pear.actions:org.apache.uima.pear.generate:org.apache.uima.pear.insd*:org.apache.uima.pear.nature</packages>
</group>
<group>
<title>Examples</title>
<packages>org.apache.uima.examples*:org.apache.uima.tutorial*:example*</packages>
</group>
<group>
<title>JVinci</title>
<packages>org.apache.vinci*</packages>
</group>
</groups>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>buildSourceJar</id>
<activation>
<file>
<exists>src/main/java</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>main-jar</id>
<!-- pick a phase that's after the ant script
adds in the LIC/NOT/DIS files (process-resources) and before
it removes them in cleanup (= package) -->
<phase>prepare-package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>signArtifacts</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>signArtifacts</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<modules>
<module>../uimaj-core</module>
<module>../uimaj-cpe</module>
<module>../uimaj-examples</module>
<module>../uimaj-tools</module>
<module>../uimaj-adapter-vinci</module>
<module>../uimaj-adapter-soap</module>
<module>../uimaj-test-util</module>
<module>../uimaj-component-test-util</module>
<module>../jVinci</module>
<module>eclipse-plugin-superPom</module>
<module>distr-superPom</module>
<module>../uimaj-document-annotation</module>
<module>../PearPackagingMavenPlugin</module>
<!-- the internal tools project is not part of any release
and can't be built automatically - to build it,
cd to the project directory and do mvn install -->
<!--module>../uimaj-internal-tools</module-->
<module>../uimaj-bootstrap</module>
</modules>
<repositories>
<repository>
<id>eclipsePlugins</id>
<url>http://repo1.maven.org/eclipse</url>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<repository>
<id>ApacheIncubatorRepository</id>
<url>http://people.apache.org/repo/m2-incubating-repository/</url>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>