mirror of https://github.com/apache/openjpa.git
408 lines
19 KiB
XML
408 lines
19 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<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 created a GPG
|
|
key. See http://apache.org/dev/release-signing.html
|
|
-->
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<artifactId>openjpa-project</artifactId>
|
|
<packaging>pom</packaging>
|
|
<name>OpenJPA Distribution</name>
|
|
<parent>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa</artifactId>
|
|
<version>0.9.6-incubating-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<properties>
|
|
<openjpa.release.keyAlias>${user.name}@apache.org</openjpa.release.keyAlias>
|
|
<openjpa.assembly.finalName>openjpa-${version}</openjpa.assembly.finalName>
|
|
<openjpa.assembly.outputDirectory>${project.basedir}/target/assembly</openjpa.assembly.outputDirectory>
|
|
</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>
|
|
|
|
<!--
|
|
Manually build an aggregate jar of all the other
|
|
openjpa-* jars using ant. We cannot use the assembly
|
|
plugin, since it doesn't provide support for appending
|
|
multiple same-named files to each other (which is
|
|
required for correctly aggregating services files).
|
|
-->
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>build-single-jar</id>
|
|
<phase>process-classes</phase>
|
|
<configuration>
|
|
<tasks>
|
|
<unjar overwrite="false"
|
|
dest="${basedir}/target/classes">
|
|
<fileset dir="${basedir}/..">
|
|
<include name="*/target/openjpa-*.jar" />
|
|
</fileset>
|
|
</unjar>
|
|
|
|
<!--
|
|
need to manually concatenate the services
|
|
resources so they are aggregated
|
|
-->
|
|
<macrodef name="aggregate-file">
|
|
<attribute name="servicename" />
|
|
<sequential>
|
|
<echo>
|
|
Building service: @{servicename}
|
|
</echo>
|
|
<concat
|
|
destfile="${basedir}/target/classes/META-INF/services/@{servicename}">
|
|
<fileset dir="${basedir}/.."
|
|
includes="*/src/main/resources/META-INF/services/@{servicename}" />
|
|
</concat>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<aggregate-file
|
|
servicename="org.apache.openjpa.lib.conf.ProductDerivation" />
|
|
<aggregate-file
|
|
servicename="javax.persistence.spi.PersistenceProvider" />
|
|
<aggregate-file
|
|
servicename="org.apache.openjpa.kernel.exps.ExpressionParser" />
|
|
|
|
<mkdir dir="${basedir}/target/aggregate" />
|
|
|
|
<jar
|
|
destfile="${basedir}/target/aggregate/openjpa-${version}.jar"
|
|
basedir="${basedir}/target/classes">
|
|
|
|
<manifest>
|
|
<!-- Add roughly the same manifest info that the maven-jar-plugin uses -->
|
|
<attribute name="Built-By"
|
|
value="${user.name}" />
|
|
<attribute name="Build-Jdk"
|
|
value="${java.version}" />
|
|
<attribute name="Specification-Title"
|
|
value="${project.name}" />
|
|
<attribute name="Specification-Version"
|
|
value="${project.version}" />
|
|
<attribute name="Specification-Vendor"
|
|
value="${project.organization.name}" />
|
|
<attribute name="Implementation-Title"
|
|
value="${project.name}" />
|
|
<attribute name="Implementation-Version"
|
|
value="${project.version}" />
|
|
<attribute
|
|
name="Implementation-Vendor-Id" value="${project.groupId}" />
|
|
<attribute name="Implementation-Vendor"
|
|
value="${project.organization.name}" />
|
|
|
|
<!-- set premain class -->
|
|
<attribute name="Premain-Class"
|
|
value="org.apache.openjpa.enhance.PCEnhancerAgent" />
|
|
</manifest>
|
|
|
|
</jar>
|
|
</tasks>
|
|
</configuration>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>bin</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>attached</goal>
|
|
</goals>
|
|
<configuration>
|
|
<descriptor>assembly.xml</descriptor>
|
|
<finalName>${openjpa.assembly.finalName}</finalName>
|
|
<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>
|
|
<finalName>openjpa-${version}</finalName>
|
|
<outputDirectory>${project.basedir}/target/assembly</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:
|
|
mvn package -Dtest=false -Pjavadoc-profile,docbook-profile
|
|
-->
|
|
<profile>
|
|
<id>docbook-profile</id>
|
|
<build>
|
|
<plugins>
|
|
<!-- build the docs when creating the site from docbook source -->
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<configuration>
|
|
<!-- destdir="${project.build.directory}/site/manual" -->
|
|
<tasks>
|
|
<echo>Building docbook manual</echo>
|
|
|
|
<!-- download stylesheets -->
|
|
<property name="stylesheet" value="1.69.1.tar.bz2"/>
|
|
<property name="stylesheet.dir" value="${project.basedir}/target/stylesheets"/>
|
|
|
|
<mkdir dir="${stylesheet.dir}"/>
|
|
<get src="http://docbook.sourceforge.net/release/xsl/${stylesheet}" usetimestamp="true" dest="${stylesheet.dir}/${stylesheet}"/>
|
|
<untar src="${stylesheet.dir}/${stylesheet}" dest="${stylesheet.dir}" compression="bzip2" overwrite="false"/>
|
|
|
|
|
|
<style includes="**/manual.xml"
|
|
force="true"
|
|
basedir="${project.basedir}/src/doc/manual"
|
|
destdir="${project.basedir}/target/manual"
|
|
style="manual-xhtml.xsl"
|
|
classpathref="maven.runtime.classpath">
|
|
<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
|
|
<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
|
|
</factory>
|
|
</style>
|
|
|
|
<!--
|
|
<style includes="**/manual.xml"
|
|
force="true"
|
|
basedir="${project.basedir}/src/doc/manual"
|
|
destdir="${project.basedir}/target/manual"
|
|
style="manual-xhtml-chunk.xsl"
|
|
classpathref="maven.runtime.classpath">
|
|
<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
|
|
<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
|
|
</factory>
|
|
</style>
|
|
-->
|
|
</tasks>
|
|
</configuration>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<activation>
|
|
<property>
|
|
<name>builddocs</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
</profile>
|
|
|
|
<!-- sign the release files -->
|
|
<profile>
|
|
<id>sign-release</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<phase>deploy</phase>
|
|
<configuration>
|
|
<tasks>
|
|
<echo>Signing release files...</echo>
|
|
<macrodef name="sign-file">
|
|
<attribute name="file" />
|
|
<sequential>
|
|
<delete failonerror="false"
|
|
file="@{file}.asc"/>
|
|
<exec executable="gpg"
|
|
failonerror="true">
|
|
<arg value="--batch"/>
|
|
<arg value="--verbose"/>
|
|
<arg value="--default-key"/>
|
|
<arg value="${openjpa.release.keyAlias}"/>
|
|
<arg value="--armor"/>
|
|
<arg value="--detach-sig"/>
|
|
<arg value="@{file}"/>
|
|
</exec>
|
|
</sequential>
|
|
</macrodef>
|
|
<sign-file file="${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}.zip"/>
|
|
<sign-file file="${openjpa.assembly.outputDirectory}/${openjpa.assembly.finalName}-sources.zip"/>
|
|
</tasks>
|
|
</configuration>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<activation>
|
|
<property>
|
|
<name>sign</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<!-- need to explicitly list dependencies for assembly to work -->
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-all</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-lib</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-kernel</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-kernel-4</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-kernel-5</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-jdbc</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-jdbc-5</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-persistence</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-persistence-jdbc</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.openjpa</groupId>
|
|
<artifactId>openjpa-xmlstore</artifactId>
|
|
<version>${pom.version}</version>
|
|
</dependency>
|
|
|
|
<!-- included so we can include it in the distribution -->
|
|
<dependency>
|
|
<groupId>org.apache.derby</groupId>
|
|
<artifactId>derby</artifactId>
|
|
<version>10.1.3.1</version>
|
|
</dependency>
|
|
|
|
<!-- jars needed for for docbook -->
|
|
<dependency>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
<version>1.6.5</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant-trax</artifactId>
|
|
<version>1.6.5</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>xalan</groupId>
|
|
<artifactId>xalan</artifactId>
|
|
<version>2.7.0</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>bcel</groupId>
|
|
<artifactId>bcel</artifactId>
|
|
<version>5.1</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</project>
|