gatk-3.8/pom.xml

733 lines
36 KiB
XML
Raw Normal View History

<?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">
<modelVersion>4.0.0</modelVersion>
<!--
This pom is the aggregator for all sting/gatk poms
See also:
http://maven.apache.org/pom.html#Inheritance_v
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance_vs_Project_Aggregation
http://stackoverflow.com/questions/1992213/maven-parent-pom-vs-modules-pom
-->
<parent>
<groupId>org.broadinstitute.sting</groupId>
<artifactId>sting-root</artifactId>
<version>2.6-SNAPSHOT</version>
<relativePath>public/sting-root</relativePath>
</parent>
<artifactId>sting-aggregator</artifactId>
<packaging>pom</packaging>
<name>Sting Aggregator</name>
<modules>
<module>public</module>
<!-- private & protected optionally enabled as profiles -->
</modules>
<properties>
<sting.basedir>${project.basedir}</sting.basedir>
<resource.bundle.path>StingText.properties</resource.bundle.path>
<resource.bundle.skip>false</resource.bundle.skip>
<!-- TODO: Need a better a way to say "don't include hidden" by default -->
<gatkdocs.include.hidden>-build-timestamp "${maven.build.timestamp}"</gatkdocs.include.hidden>
<sting.jar.phase>package</sting.jar.phase>
<sting.packagecommittests.skipped>true</sting.packagecommittests.skipped>
<sting.packageunittests.skipped>${sting.packagecommittests.skipped}</sting.packageunittests.skipped>
<sting.packageintegrationtests.skipped>${sting.packagecommittests.skipped}</sting.packageintegrationtests.skipped>
<sting.packagepipelinetests.skipped>${sting.packagecommittests.skipped}</sting.packagepipelinetests.skipped>
<sting.packagelargescaletests.skipped>true</sting.packagelargescaletests.skipped>
</properties>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
</dependency>
</dependencies>
<build>
<!-- Plugin configuration -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<!--
TODO: Once GATKDoclet stops hard coding paths, we remove this and leave
TODO: it to the standard maven conventions to clean up for us
-->
<fileset>
<directory>gatkdocs</directory>
</fileset>
<fileset>
<directory>${basedir}</directory>
<includes>
<include>javadoc.sh</include>
<include>options</include>
<include>packages</include>
</includes>
</fileset>
<!--
Shade dumps this temp file in basedir, with no good way to reconfigure.
https://jira.codehaus.org/browse/MSHADE-145
-->
<fileset>
<directory>${basedir}</directory>
<includes>
<include>dependency-reduced-pom.xml</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-direct-dependencies</id>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<phase>none</phase>
<configuration>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<includeTypes>jar</includeTypes>
<excludeScope>system</excludeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- TODO: Change the ResourceBundleExtractorDoclet to not require log4j.properties file -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resource-bundle-log4j</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>none</phase>
<configuration>
<outputDirectory>${project.reporting.outputDirectory}/apidocs</outputDirectory>
<resources>
<resource>
<directory>${sting.basedir}/sting-utils/src/main/config/org/broadinstitute/sting/utils/help</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>extract-resource-bundle</id>
<goals>
<goal>javadoc</goal>
</goals>
<phase>none</phase>
<configuration>
<!-- Allow skipping for "fasttest" -->
<skip>${resource.bundle.skip}</skip>
<doclet>org.broadinstitute.sting.utils.help.ResourceBundleExtractorDoclet</doclet>
<!-- Required as doclet uses reflection to access classes for documentation, instead of source java-->
<docletPath>${project.build.outputDirectory}</docletPath>
<docletArtifact>
<groupId>${project.groupId}</groupId>
<!-- TODO: THIS IS SUPPOSED TO BE STING-UTILS! -->
<artifactId>gatk-framework</artifactId>
<version>${project.version}</version>
</docletArtifact>
<maxmemory>2g</maxmemory>
<useStandardDocletOptions>false</useStandardDocletOptions>
<quiet>true</quiet>
<additionalparam>-build-timestamp "${maven.build.timestamp}" -absolute-version ${build.version} -out ${project.build.outputDirectory}/${resource.bundle.path}</additionalparam>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<proc>none</proc>
<annotationProcessors>
<annotationProcessor>com.google.java.contract.core.apt.AnnotationProcessor</annotationProcessor>
</annotationProcessors>
<compilerArguments>
<!--
For com.sun.istack.internal. Because bootclasspath is set to include rt.jar, now jce.jar must be set for the Oracle only javax.crypto also.
TODO: This Sun internal tool usage needs to be removed ASAP!
-->
<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
<!--
Explicit package-info creation to match existing ant output.
-->
<execution>
<id>compile-package-info</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
<configuration>
<compilerArgs>
<arg>-Xpkginfo:always</arg>
</compilerArgs>
<includes>
<include>**/package-info.java</include>
</includes>
</configuration>
</execution>
<!--
TODO: Currently disabled in build.xml. Here as well.
<execution>
<id>compile-annotations</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<proc>only</proc>
</configuration>
</execution>
-->
<execution>
<id>compile-java</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
<configuration>
<!--
Package info is supposed to be in source:
http://maven.apache.org/plugins/maven-javadoc-plugin/examples/javadoc-resources.html
But maven-compile-plugin doesn't auto exclude these:
https://jira.codehaus.org/browse/MCOMPILER-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=326505#comment-326505
So, explicitly exclude them
-->
<excludes>
<exclude>**/package-info.java</exclude>
</excludes>
</configuration>
</execution>
<!--
TODO: Currently disabled in build.xml. Here as well.
<execution>
<id>testCompile-annotations</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<proc>only</proc>
</configuration>
</execution>
-->
<execution>
<id>testCompile-java</id>
<goals>
<goal>testCompile</goal>
</goals>
<phase>test-compile</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>${sting.jar.phase}</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>sting-executable</id>
<goals>
<goal>shade</goal>
</goals>
<phase>none</phase>
<configuration>
<minimizeJar>true</minimizeJar>
<artifactSet>
<excludes>
<exclude>org.broadinstitute.sting:gsalib:tar.gz:*</exclude>
<exclude>org.broadinstitute.sting:*:tar.bz2:example-resources</exclude>
</excludes>
</artifactSet>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>${app.main.class}</Main-Class>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>${resource.bundle.path}</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>example-resources</id>
<goals>
<goal>single</goal>
</goals>
<phase>none</phase>
<configuration>
<descriptors>
<descriptor>src/main/assembly/example-resources.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>binary-dist</id>
<goals>
<goal>single</goal>
</goals>
<phase>none</phase>
<configuration>
<descriptors>
<descriptor>src/main/assembly/binary-dist.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<!-- TODO: Remove temporary symbolic link creation, after fixing test paths to use local resources. -->
<plugin>
<groupId>com.pyx4j</groupId>
<artifactId>maven-junction-plugin</artifactId>
<executions>
<execution>
<id>link-public-testdata</id>
<goals>
<goal>link</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/public/testdata</dst>
<src>${sting.basedir}/public/gatk-framework/src/test/resources</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>unlink-public-testdata</id>
<goals>
<goal>unlink</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/public/testdata</dst>
<src>${sting.basedir}/public/gatk-framework/src/test/resources</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>link-private-testdata</id>
<goals>
<goal>link</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/private/testdata</dst>
<src>${sting.basedir}/private/gatk-private/src/test/resources</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>unlink-private-testdata</id>
<goals>
<goal>unlink</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/private/testdata</dst>
<src>${sting.basedir}/private/gatk-private/src/test/resources</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>link-public-qscript</id>
<goals>
<goal>link</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/public/scala/qscript</dst>
<src>${sting.basedir}/public/queue-framework/src/main/qscripts</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>unlink-public-qscript</id>
<goals>
<goal>unlink</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/public/scala/qscript</dst>
<src>${sting.basedir}/public/queue-framework/src/main/qscripts</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>link-private-qscript</id>
<goals>
<goal>link</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/private/scala/qscript</dst>
<src>${sting.basedir}/private/queue-private/src/main/qscripts</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>unlink-private-qscript</id>
<goals>
<goal>unlink</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${basedir}/private/scala/qscript</dst>
<src>${sting.basedir}/private/queue-private/src/main/qscripts</src>
</link>
</links>
</configuration>
</execution>
<execution>
<id>link-git-release</id>
<goals>
<goal>link</goal>
</goals>
<phase>none</phase>
<configuration>
<links>
<link>
<dst>${project.build.directory}/${sting.binary-dist.name}-${build.version}.tar.bz2</dst>
<src>${project.build.directory}/${project.build.finalName}-binary-dist.tar.bz2</src>
</link>
</links>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<skipInvocation>true</skipInvocation>
<debug>false</debug>
<pom>${sting.basedir}/public/package-tests/pom.xml</pom>
<noLog>true</noLog>
<streamLogs>true</streamLogs>
<localRepositoryPath>${sting.basedir}/${maven.repo.local}</localRepositoryPath>
<properties>
<test>${test}</test>
<it.test>${it.test}</it.test>
<skip>false</skip>
<maven.test.skip>false</maven.test.skip>
<sting.packagetests.artifactId>${sting.packagetests.artifactId}</sting.packagetests.artifactId>
<sting.packagetests.testClasses>${project.build.testOutputDirectory}</sting.packagetests.testClasses>
<sting.packagetests.basedir>${project.basedir}</sting.packagetests.basedir>
<sting.pipelinetests.run>${sting.pipelinetests.run}</sting.pipelinetests.run>
<maven.surefire.debug>${maven.surefire.debug}</maven.surefire.debug>
<maven.failsafe.debug>${maven.failsafe.debug}</maven.failsafe.debug>
</properties>
</configuration>
<executions>
<!--
TODO: see description of disable.gatk-framework.test.dependency in gatk-framework/pom.xml
-->
<execution>
<id>package-unittests</id>
<goals>
<goal>run</goal>
</goals>
<configuration>
<goals>
<goal>test</goal>
</goals>
<skipInvocation>${sting.packageunittests.skipped}</skipInvocation>
<properties>
<unittests.profile.enabled>true</unittests.profile.enabled>
<disable.gatk-framework.test.dependency>false</disable.gatk-framework.test.dependency>
<sting.packageunittests.skipped>${sting.packageunittests.skipped}</sting.packageunittests.skipped>
</properties>
</configuration>
</execution>
<execution>
<id>package-integrationtests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<goals>
<goal>verify</goal>
</goals>
<skipInvocation>${sting.packageintegrationtests.skipped}</skipInvocation>
<properties>
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
<disable.gatk-framework.test.dependency>false</disable.gatk-framework.test.dependency>
<sting.packageintegrationtests.skipped>${sting.packageintegrationtests.skipped}</sting.packageintegrationtests.skipped>
</properties>
</configuration>
</execution>
<execution>
<id>package-pipelinetests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<goals>
<goal>verify</goal>
</goals>
<skipInvocation>${sting.packagepipelinetests.skipped}</skipInvocation>
<properties>
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
<disable.gatk-framework.test.dependency>false</disable.gatk-framework.test.dependency>
<sting.packagepipelinetests.skipped>${sting.packagepipelinetests.skipped}</sting.packagepipelinetests.skipped>
</properties>
</configuration>
</execution>
<execution>
<id>package-largescaletests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<goals>
<goal>verify</goal>
</goals>
<skipInvocation>${sting.packagelargescaletests.skipped}</skipInvocation>
<properties>
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
<disable.gatk-framework.test.dependency>false</disable.gatk-framework.test.dependency>
<sting.packagelargescaletests.skipped>${sting.packagelargescaletests.skipped}</sting.packagelargescaletests.skipped>
</properties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>install-package</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>none</phase>
<configuration>
<generatePom>true</generatePom>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>${project.packaging}</packaging>
<file>${project.build.directory}/${project.build.finalName}.${project.packaging}</file>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<!-- Invoke plugins that always run -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.pyx4j</groupId>
<artifactId>maven-junction-plugin</artifactId>
<executions>
<execution>
<id>link-public-testdata</id>
<phase>process-test-resources</phase>
</execution>
<execution>
<id>unlink-public-testdata</id>
<phase>clean</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.google.code.sortpom</groupId>
<artifactId>maven-sortpom-plugin</artifactId>
<executions>
<execution>
<id>package-tests</id>
<goals>
<goal>sort</goal>
</goals>
<phase>verify</phase>
<inherited>false</inherited>
<configuration>
<pomFile>public/package-tests/pom.xml</pomFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<reportSets>
<!-- By not specifying an id, shut off all default javadocs from mvn site -->
<reportSet>
<reports />
</reportSet>
<reportSet>
<id>generate-gatk-docs</id>
<reports>
<report>aggregate</report>
</reports>
<!-- Only generate the GATK Docs across the parent aggregation, not the children too. -->
<inherited>false</inherited>
<configuration>
<doclet>org.broadinstitute.sting.utils.help.GATKDoclet</doclet>
<docletArtifact>
<groupId>${project.groupId}</groupId>
<artifactId>gatk-package</artifactId>
<version>${project.version}</version>
</docletArtifact>
<useStandardDocletOptions>false</useStandardDocletOptions>
<quiet>true</quiet>
<show>private</show>
<!--
TODO: Stop GATKDoclet from hardcoding paths and start using parameters.
For now... just run from the base directory, target/site/../..
-->
<destDir>../..</destDir>
<additionalparam>-build-timestamp "${maven.build.timestamp}" -absolute-version ${build.version} ${gatkdocs.include.hidden}</additionalparam>
<!--
TODO: Leaving this true applies a patch to the git commited file
TODO: private/resources/clover/api/index.html
TODO: Determine if this file was generated and shoudldn't be touched,
TODO: or patch the file and commit a new version.
-->
<applyJavadocSecurityFix>false</applyJavadocSecurityFix>
</configuration>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<!-- Optionally include protected -->
<profile>
<id>protected</id>
<activation>
<file>
<exists>${basedir}/protected/pom.xml</exists>
</file>
</activation>
<modules>
<module>protected</module>
</modules>
</profile>
<!-- Optionally include private -->
<profile>
<id>private</id>
<activation>
<file>
<exists>${basedir}/private/pom.xml</exists>
</file>
</activation>
<modules>
<module>private</module>
</modules>
</profile>
</profiles>
</project>