openjpa/openjpa-project/pom.xml

408 lines
19 KiB
XML
Raw Normal View History

<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">
<!--
To build the distribution files from project root:
mvn clean compile package -Dtest=false
To build and deploy a full digned release with docs, run:
mvn clean deploy -Pjavadoc-profile,docbook-profile,sign-release
Note that to sign the release, you need to have "gpg" installed and
create a key. See http://apache.org/dev/release-signing.html
-->
<modelVersion>4.0.0</modelVersion>
<artifactId>apache-openjpa</artifactId>
<packaging>pom</packaging>
<name>OpenJPA Distribution</name>
<parent>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<properties>
<openjpa.release.keyAlias>
${user.name}@apache.org
</openjpa.release.keyAlias>
<openjpa.assembly.finalName>
${artifactId}-${version}</openjpa.assembly.finalName>
<openjpa.assembly.outputDirectory>
${project.basedir}/target/site/downloads
</openjpa.assembly.outputDirectory>
<openjpa.assembly.binarySuffix>binary</openjpa.assembly.binarySuffix>
<openjpa.assembly.binaryBase>
${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}-${openjpa.assembly.binarySuffix}
</openjpa.assembly.binaryBase>
<openjpa.assembly.binaryFile>
${openjpa.assembly.binaryBase}.zip
</openjpa.assembly.binaryFile>
<openjpa.assembly.sourceSuffix>source</openjpa.assembly.sourceSuffix>
<openjpa.assembly.sourceBase>
${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}-${openjpa.assembly.sourceSuffix}
</openjpa.assembly.sourceBase>
<openjpa.assembly.sourceFile>
${openjpa.assembly.sourceBase}.zip
</openjpa.assembly.sourceFile>
<parent.site.docs>
${project.basedir}/target/site/docs
</parent.site.docs>
<docbook.source>${project.basedir}/src/doc/manual</docbook.source>
<docbook.target>${project.basedir}/target/manual</docbook.target>
<docbook.version>1.67.2</docbook.version>
<local.repository>${settings.localRepository}</local.repository>
<!--
Java imaging apis are needed to include images in a PDF.
JIMI or JAI may be used. Neither is available in a maven
repository and should be downloaded and installed manually
to your local repository.
ie :
$ mvn install:install-file -Dfile=jai_core.jar \
-DgroupId=javax.media -DartifactId=jai-core \
-Dversion=1.1.3 -Dpackaging=jar
Alternatively if you have installed the JAI artifacts to an
internal repository you can specify it with the
-Djai.maven.repos=REPOS_URL command line argument.
-->
<jai.maven.repo>http://not.a.real.repository</jai.maven.repo>
<jai.version>1.1.3</jai.version>
<!-- authentication for nightly uploads -->
<nightly.user.name>${user.name}</nightly.user.name>
<nightly.password>passw0rd</nightly.password>
</properties>
<build>
<!-- needed to let maven pass the "compile" phase -->
<testSourceDirectory>/none/</testSourceDirectory>
<!-- filter site resources -->
<resources>
<resource>
<directory>${project.basedir}/src/site</directory>
<!-- targetPath is relative to target/classes/ -->
<targetPath>../filtered-site</targetPath>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>bin</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptor>assembly.xml</descriptor>
<outputDirectory>${openjpa.assembly.outputDirectory}</outputDirectory>
<workDirectory>target/work</workDirectory>
</configuration>
</execution>
<execution>
<id>sources</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptor>source-assembly.xml</descriptor>
<outputDirectory>${openjpa.assembly.outputDirectory}</outputDirectory>
<workDirectory>target/work</workDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!--
Copy over site files from src/site to target/filtered-site
so we can filter resources and include other generated
content from the openjpa-project module.
-->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>prefilter-site</id>
<phase>site</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.0-beta-5</version>
<configuration>
<siteDirectory>target/filtered-site</siteDirectory>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!--
Docbook profile. Docs can be built by running:
MAVEN_OPTS=-Xmx512m
mvn -f openjpa-project/pom.xml process-resources -Pdocbook-profile
-->
<profile>
<id>docbook-profile</id>
<build>
<plugins>
<!-- build the docs when processing resources -->
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.7</version>
<executions>
<execution>
<id>build-pdf-doc</id>
<phase>process-resources</phase>
<goals><goal>generate-pdf</goal></goals>
<configuration>
<sourceDirectory>
${docbook.source}
</sourceDirectory>
<targetDirectory>
${docbook.target}
</targetDirectory>
<includes>manual.xml</includes>
<foCustomization>
${docbook.source}/manual-pdf.xsl
</foCustomization>
<imgSrcPath>
${docbook.source}/
</imgSrcPath>
<postProcess>
<!-- copy to parent module for
expanded access in upload -->
<mkdir dir="${parent.site.docs}" />
<delete file="${docbook.target}/manual.fo" />
<copy todir="${parent.site.docs}">
<fileset dir="${docbook.target}">
<include name="manual.pdf" />
</fileset>
</copy>
</postProcess>
</configuration>
</execution>
<execution>
<id>build-chunked-doc</id>
<phase>process-resources</phase>
<goals><goal>generate-html</goal></goals>
<configuration>
<sourceDirectory>
${docbook.source}
</sourceDirectory>
<targetDirectory>
${docbook.target}
</targetDirectory>
<includes>manual.xml</includes>
<chunkedOutput>true</chunkedOutput>
<chunkQuietly>false</chunkQuietly>
<htmlCustomization>
${docbook.source}/manual-xhtml-chunk.xsl
</htmlCustomization>
<postProcess>
<!-- rename manual to index -->
<move file="${docbook.target}/manual.html" tofile="${docbook.target}/index.html" />
<!-- copy over images and styles -->
<mkdir dir="${docbook.target}/img" />
<copy todir="${docbook.target}/img">
<fileset dir="${docbook.source}/img">
<include name="*.*" />
</fileset>
</copy>
<mkdir dir="${docbook.target}/css" />
<copy todir="${docbook.target}/css">
<fileset dir="${docbook.source}/css">
<include name="*.*" />
</fileset>
</copy>
<!-- copy to parent module for
expanded access in upload -->
<mkdir dir="${parent.site.docs}" />
<copy todir="${parent.site.docs}">
<fileset dir="${docbook.target}">
<include name="*.*" />
</fileset>
</copy>
</postProcess>
</configuration>
</execution>
<execution>
<id>build-single-doc</id>
<phase>process-resources</phase>
<goals><goal>generate-html</goal></goals>
<configuration>
<sourceDirectory>
${docbook.source}
</sourceDirectory>
<targetDirectory>
${docbook.target}
</targetDirectory>
<includes>manual.xml</includes>
<chunkedOutput>false</chunkedOutput>
<htmlCustomization>
${docbook.source}/manual-xhtml.xsl
</htmlCustomization>
<postProcess>
<!-- copy to parent module for
expanded access in upload -->
<mkdir dir="${parent.site.docs}" />
<copy todir="${parent.site.docs}">
<fileset dir="${docbook.target}">
<include name="manual.html" />
</fileset>
</copy>
</postProcess>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>4.4</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai_core</artifactId>
<version>${jai.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.media</groupId>
<artifactId>jai_codec</artifactId>
<version>${jai.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<activation>
<property>
<name>builddocs</name>
<value>true</value>
</property>
</activation>
<pluginRepositories>
<pluginRepository>
<id>agilejava</id>
<name>Agilejava repository (Docbook plugin)</name>
<url>http://agilejava.com/maven</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>jai.repository</id>
<name>JAI Repository (indirectly used by Docbook plugin)</name>
<url>${jai.maven.repo}</url>
</repository>
</repositories>
</profile>
<!--
Upload distribution files, javadoc and manual to openjpa.apache.org/builds/latest.
This profile is designed to be run nightly by a continuous build server, but can
also be run manually.
The nightly.user.name and nightly.password properties need to be set prior to using
this profile, ie :
$ mvn -Dnightly.user.name=mikedd -Dnightly.password=mikesPassword -Pnightly-upload package
or (using a profile defined in $user.home/.m2/settings.xml )
$ mvn -Pnightly-upload,mikes-nightly-credentials package
-->
<profile>
<id>nightly-upload</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<mkdir dir="target/site/tempDocs" />
<unzip dest="target/site/tempDocs">
<fileset dir="target/site/downloads">
<include name="*binary*.zip" />
</fileset>
<patternset>
<include name="**/javadoc/**" />
<include name="**/manual/**" />
</patternset>
</unzip>
<move todir="target/site/tempDocs/docs">
<fileset dir="target/site/tempDocs/apache-openjpa-${pom.version}/docs" />
</move>
<checksum>
<fileset dir="target/site/downloads/">
<include name="*.zip" />
</fileset>
</checksum>
<scp todir="${nightly.user.name}:${nightly.password}@people.apache.org:/www/openjpa.apache.org/builds/latest/downloads" trust="true">
<fileset dir="target/site/downloads" />
</scp>
<scp todir="${nightly.user.name}:${nightly.password}@people.apache.org:/www/openjpa.apache.org/builds/latest/docs" trust="true">
<fileset dir="target/site/tempDocs/docs" />
</scp>
<sshexec host="people.apache.org" username="${nightly.user.name}" password="${nightly.password}" command="chmod -R g+w /www/openjpa.apache.org/builds/latest" trust="true" />
<delete>
<fileset dir="target/site/tempDocs" />
</delete>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.7.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- need to explicitly list dependencies for assembly to work -->
<dependencies>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>${pom.version}</version>
</dependency>
<!-- included so we can include it in the distribution -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
</dependencies>
</project>