867 lines
44 KiB
XML
867 lines
44 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">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<!--
|
|
This pom is the aggregator for all 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.gatk</groupId>
|
|
<artifactId>gatk-root</artifactId>
|
|
<version>3.4-SNAPSHOT</version>
|
|
<relativePath>public/gatk-root</relativePath>
|
|
</parent>
|
|
|
|
<artifactId>gatk-aggregator</artifactId>
|
|
<packaging>pom</packaging>
|
|
<name>GATK Aggregator</name>
|
|
|
|
<modules>
|
|
<module>public</module>
|
|
<!-- private & protected optionally enabled as profiles -->
|
|
</modules>
|
|
|
|
<properties>
|
|
<gatk.basedir>${project.basedir}</gatk.basedir>
|
|
<resource.bundle.path>GATKText.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>
|
|
<gatk.shell.directory>${gatk.basedir}/public/src/main/scripts/shell</gatk.shell.directory>
|
|
<gatk.assembly.directory>${gatk.basedir}/public/src/main/assembly</gatk.assembly.directory>
|
|
|
|
<!--
|
|
Phases of the build that may be disabled to speed up compilation.
|
|
-->
|
|
<gatk.jar.phase>package</gatk.jar.phase>
|
|
<gatk.unpack.phase>prepare-package</gatk.unpack.phase>
|
|
<gatk.shade.phase>package</gatk.shade.phase>
|
|
<gatk.generate-resources.phase>generate-resources</gatk.generate-resources.phase>
|
|
<gatk.process-resources.phase>process-resources</gatk.process-resources.phase>
|
|
<gatk.process-test-resources.phase>process-test-resources</gatk.process-test-resources.phase>
|
|
|
|
<!--
|
|
Package tests ensure the consistency of the packaged / shaded jars.
|
|
It runs the tests where the monolithic jar is the only dependency on the classpath.
|
|
-->
|
|
<gatk.packagecommittests.skipped>true</gatk.packagecommittests.skipped>
|
|
<gatk.packageunittests.skipped>${gatk.packagecommittests.skipped}</gatk.packageunittests.skipped>
|
|
<gatk.packageintegrationtests.skipped>${gatk.packagecommittests.skipped}</gatk.packageintegrationtests.skipped>
|
|
<gatk.packagequeuetests.skipped>${gatk.packagecommittests.skipped}</gatk.packagequeuetests.skipped>
|
|
<gatk.packagelargescaletests.skipped>true</gatk.packagelargescaletests.skipped>
|
|
<gatk.packageknowledgebasetests.skipped>true</gatk.packageknowledgebasetests.skipped>
|
|
|
|
<!--
|
|
Serial tests use the test jars to run tests, such that all tests are run from a single TestNG invocation.
|
|
This is different that the invoker, that runs the test classes from the filesystem, but pointing at the packaged JAR files.
|
|
TODO: Currently, all tests run within each package, since packages already collect dependencies for shading an uber jar.
|
|
TODO: Should there be another level up of tests, possibly running "all tests" via this aggregator level?
|
|
TODO: If that require the aggregator to be dependent on the child dependencies, perhaps a better approach might be another monolithic test project.
|
|
-->
|
|
<gatk.serialcommittests.skipped>true</gatk.serialcommittests.skipped>
|
|
<gatk.serialunittests.skipped>${gatk.serialcommittests.skipped}</gatk.serialunittests.skipped>
|
|
<gatk.serialintegrationtests.skipped>${gatk.serialcommittests.skipped}</gatk.serialintegrationtests.skipped>
|
|
<gatk.serialqueuetests.skipped>${gatk.serialcommittests.skipped}</gatk.serialqueuetests.skipped>
|
|
<gatk.seriallargescaletests.skipped>true</gatk.seriallargescaletests.skipped>
|
|
<gatk.serialknowledgebasetests.skipped>true</gatk.serialknowledgebasetests.skipped>
|
|
|
|
<!-- Full path to write the executable MANIFEST.MF only jars, 10 seconds to create at 4KB each, and the accompanying lib directory -->
|
|
<gatk.executable.directory>${gatk.basedir}/target/executable</gatk.executable.directory>
|
|
<!-- Full path to write (symlinks to) the full shaded package jars, 1+ minute to create at 12MB+ each -->
|
|
<gatk.package.directory>${gatk.basedir}/target/package</gatk.package.directory>
|
|
<!--
|
|
Full path to write symlink to either an executable MANIFEST.MF only jar - OR - a fully shaded package jar.
|
|
NOTE: MANIFEST.MF only jars MUST be accompanied by the lib folder, or they will not run.
|
|
-->
|
|
<gatk.shortcut.directory>${gatk.basedir}/target</gatk.shortcut.directory>
|
|
</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>
|
|
<!--
|
|
NOTE: Shade include filters do NOT include transient dependencies, only the class directly listed.
|
|
|
|
Thus to fully include all the classes in packages, we must:
|
|
1) List the artifacts we want shaded as direct dependencies
|
|
2) Run the unpack direct dependencies into the classes directory
|
|
3) Shade the classes directory as we normally would.
|
|
-->
|
|
<configuration>
|
|
<excludeTransitive>true</excludeTransitive>
|
|
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
|
|
<includeTypes>jar</includeTypes>
|
|
<includeScope>runtime</includeScope>
|
|
<!-- Don't unjar the resource bundle, so that shade's AppendingTransformer can merge -->
|
|
<excludes>${resource.bundle.path}</excludes>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>executable-jar-lib</id>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<outputDirectory>${gatk.executable.directory}/lib</outputDirectory>
|
|
<includeScope>runtime</includeScope>
|
|
</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>default-resources</id>
|
|
<goals>
|
|
<goal>resources</goal>
|
|
</goals>
|
|
<phase>${gatk.process-resources.phase}</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>default-testResources</id>
|
|
<goals>
|
|
<goal>testResources</goal>
|
|
</goals>
|
|
<phase>${gatk.process-test-resources.phase}</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-resource-bundle-log4j</id>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<!--
|
|
Just before running the resource bundle generation, copy a simple log4j
|
|
config file to the apidocs execution directory, so that logging prints out.
|
|
-->
|
|
<outputDirectory>${project.reporting.outputDirectory}/apidocs</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>${gatk.basedir}/public/gatk-utils/src/main/config/org/broadinstitute/gatk/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.gatk.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>
|
|
<artifactId>gatk-utils</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>
|
|
</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>executable-jar</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<classesDirectory>${project.build.outputDirectory}/ignored_by_executable_jar</classesDirectory>
|
|
<outputDirectory>${gatk.executable.directory}</outputDirectory>
|
|
<finalName>${gatk.binary-dist.name}</finalName>
|
|
<archive>
|
|
<manifest>
|
|
<mainClass>${app.main.class}</mainClass>
|
|
<addClasspath>true</addClasspath>
|
|
<classpathPrefix>lib/</classpathPrefix>
|
|
</manifest>
|
|
</archive>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>default-jar</id>
|
|
<phase>${gatk.jar.phase}</phase>
|
|
</execution>
|
|
<!--
|
|
Maven keeps executing default-jar first, even if it's listed AFTER the executable-jar.
|
|
So while packaging: run executable-jar, disable default-jar, then run unshaded-default-jar.
|
|
-->
|
|
<execution>
|
|
<id>unshaded-default-jar</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>test-jar</id>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
<phase>${gatk.jar.phase}</phase>
|
|
<configuration>
|
|
<skipIfEmpty>true</skipIfEmpty>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>package-jar</id>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<minimizeJar>true</minimizeJar>
|
|
<artifactSet>
|
|
<excludes>
|
|
<exclude>org.broadinstitute.gatk:gsalib:tar.gz:*</exclude>
|
|
<exclude>org.broadinstitute.gatk:*:tar.bz2:example-resources</exclude>
|
|
</excludes>
|
|
</artifactSet>
|
|
<filters>
|
|
<!--
|
|
NOTE: Removing cofoja's annotation service to allow "javac -cp GenomeAnalysisTK.jar ..." without
|
|
needing an additional -proc:none argument. Using *:* to catch shaded GATK in Queue package.
|
|
-->
|
|
<filter>
|
|
<artifact>*:*</artifact>
|
|
<excludes>
|
|
<exclude>META-INF/services/javax.annotation.processing.Processor</exclude>
|
|
</excludes>
|
|
</filter>
|
|
</filters>
|
|
<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>${gatk.assembly.directory}/binary-dist.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>com.pyx4j</groupId>
|
|
<artifactId>maven-junction-plugin</artifactId>
|
|
<executions>
|
|
<!--
|
|
HACK: Adding the source directory via build-helper-maven-plugin doesn't work with IntelliJ.
|
|
Add compatibility link from public's extensions source code to target/generated-sources.
|
|
see: http://wiki.jetbrains.net/intellij/Maven_FAQ
|
|
-->
|
|
<execution>
|
|
<id>link-extensions-sources</id>
|
|
<goals>
|
|
<goal>link</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<links>
|
|
<link>
|
|
<dst>${project.build.directory}/generated-sources/gatk-queue-extensions-public-src-main-scala</dst>
|
|
<src>${gatk.basedir}/public/gatk-queue-extensions-public/src/main/scala</src>
|
|
</link>
|
|
</links>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>link-executable-jar</id>
|
|
<goals>
|
|
<goal>link</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<links>
|
|
<link>
|
|
<dst>${gatk.shortcut.directory}/${gatk.binary-dist.name}.${project.packaging}</dst>
|
|
<src>${gatk.executable.directory}/${gatk.binary-dist.name}.${project.packaging}</src>
|
|
</link>
|
|
</links>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>link-package-jar</id>
|
|
<goals>
|
|
<goal>link</goal>
|
|
</goals>
|
|
<phase>none</phase>
|
|
<configuration>
|
|
<links>
|
|
<link>
|
|
<dst>${gatk.package.directory}/${gatk.binary-dist.name}.${project.packaging}</dst>
|
|
<src>${project.build.directory}/${project.build.finalName}.${project.packaging}</src>
|
|
</link>
|
|
<link>
|
|
<dst>${gatk.shortcut.directory}/${gatk.binary-dist.name}.${project.packaging}</dst>
|
|
<src>${project.build.directory}/${project.build.finalName}.${project.packaging}</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}/${gatk.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>${gatk.basedir}/public/package-tests/pom.xml</pom>
|
|
<noLog>true</noLog>
|
|
<streamLogs>true</streamLogs>
|
|
<localRepositoryPath>${gatk.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>
|
|
<gatk.packagetests.artifactId>${gatk.packagetests.artifactId}</gatk.packagetests.artifactId>
|
|
<gatk.packagetests.testClasses>${project.build.testOutputDirectory}</gatk.packagetests.testClasses>
|
|
<gatk.packagetests.basedir>${project.basedir}</gatk.packagetests.basedir>
|
|
<gatk.queuetests.run>${gatk.queuetests.run}</gatk.queuetests.run>
|
|
<maven.surefire.debug>${maven.surefire.debug}</maven.surefire.debug>
|
|
<maven.failsafe.debug>${maven.failsafe.debug}</maven.failsafe.debug>
|
|
</properties>
|
|
<!--
|
|
To allow using separated integration-test and verify, each execution must use a separate reportsDirectory.
|
|
|
|
Otherwise, when an empty "pipeline test" later runs on an IntegrationTest class,
|
|
it overwrites the results of the previous invocation always with a zero exit status.
|
|
|
|
Mixing in the test name into the reportsDirectory also avoids collisions, when different maven jobs run tests in parallel.
|
|
|
|
Similarly generating unique failsafe summary reports to avoid collisions.
|
|
-->
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>package-unittests</id>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<goals>
|
|
<goal>test</goal>
|
|
</goals>
|
|
<reportsDirectory>${project.build.directory}/invoker-reports/unit/${test}</reportsDirectory>
|
|
<skipInvocation>${gatk.packageunittests.skipped}</skipInvocation>
|
|
<properties>
|
|
<unittests.profile.enabled>true</unittests.profile.enabled>
|
|
<gatk.packageunittests.skipped>${gatk.packageunittests.skipped}</gatk.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>
|
|
<reportsDirectory>${project.build.directory}/invoker-reports/integration/${it.test}</reportsDirectory>
|
|
<skipInvocation>${gatk.packageintegrationtests.skipped}</skipInvocation>
|
|
<properties>
|
|
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
|
|
<gatk.packageintegrationtests.skipped>${gatk.packageintegrationtests.skipped}</gatk.packageintegrationtests.skipped>
|
|
</properties>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>package-queuetests</id>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<configuration>
|
|
<goals>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<reportsDirectory>${project.build.directory}/invoker-reports/queuetest/${it.test}</reportsDirectory>
|
|
<skipInvocation>${gatk.packagequeuetests.skipped}</skipInvocation>
|
|
<properties>
|
|
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
|
|
<gatk.packagequeuetests.skipped>${gatk.packagequeuetests.skipped}</gatk.packagequeuetests.skipped>
|
|
</properties>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>package-largescaletests</id>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<configuration>
|
|
<goals>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<reportsDirectory>${project.build.directory}/invoker-reports/largescale/${it.test}</reportsDirectory>
|
|
<skipInvocation>${gatk.packagelargescaletests.skipped}</skipInvocation>
|
|
<properties>
|
|
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
|
|
<gatk.packagelargescaletests.skipped>${gatk.packagelargescaletests.skipped}</gatk.packagelargescaletests.skipped>
|
|
</properties>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>package-knowledgebasetests</id>
|
|
<goals>
|
|
<goal>integration-test</goal>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<configuration>
|
|
<goals>
|
|
<goal>verify</goal>
|
|
</goals>
|
|
<reportsDirectory>${project.build.directory}/invoker-reports/knowledgebase/${it.test}</reportsDirectory>
|
|
<skipInvocation>${gatk.packageknowledgebasetests.skipped}</skipInvocation>
|
|
<properties>
|
|
<integrationtests.profile.enabled>true</integrationtests.profile.enabled>
|
|
<gatk.packageknowledgebasetests.skipped>${gatk.packageknowledgebasetests.skipped}</gatk.packageknowledgebasetests.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.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<!--
|
|
TODO: Separate maven modules into separate git repos?
|
|
Until then, keep devs from accidentally mixing utils/engine/tools.
|
|
-->
|
|
<id>check-utils-engine-tools</id>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<phase>process-sources</phase>
|
|
<inherited>false</inherited>
|
|
<configuration>
|
|
<executable>${gatk.shell.directory}/check_utils_engine_tools.sh</executable>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<!--
|
|
TODO: Remove after 3.3+ release.
|
|
Until then, will clean out symbolic links from users who download public/protected.
|
|
Perhaps leave the script even longer.
|
|
-->
|
|
<id>delete-mavens-links</id>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<phase>process-test-resources</phase>
|
|
<inherited>false</inherited>
|
|
<configuration>
|
|
<executable>${gatk.shell.directory}/delete_maven_links.sh</executable>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-failsafe-plugin</artifactId>
|
|
</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.gatk.tools.walkers.help.WalkerDoclet</doclet>
|
|
<docletArtifact>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>gatk-package-distribution</artifactId>
|
|
<version>${project.version}</version>
|
|
</docletArtifact>
|
|
<useStandardDocletOptions>false</useStandardDocletOptions>
|
|
<quiet>true</quiet>
|
|
<show>private</show>
|
|
<additionalparam>-build-timestamp "${maven.build.timestamp}" -absolute-version ${build.version} ${gatkdocs.include.hidden} -settings-dir ${gatk.basedir}/settings/helpTemplates -destination-dir ${project.build.directory}/gatkdocs</additionalparam>
|
|
</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>
|
|
|
|
<!-- Optionally do not shade/package jars -->
|
|
<!--
|
|
NOTE: Profile id "fast" comes from comments in PR #771.
|
|
The name is meant to be memorable, but is highly non-specific. Users are forewarned that
|
|
behavior of this profile, or the identifier itself, may be heavily modified in the future.
|
|
Hardcode usage in non-VCS controlled scripts at your own risk.
|
|
-->
|
|
<profile>
|
|
<id>fast</id>
|
|
<activation>
|
|
<property>
|
|
<name>disable.shadepackage</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<gatk.unpack.phase>none</gatk.unpack.phase>
|
|
<gatk.shade.phase>none</gatk.shade.phase>
|
|
</properties>
|
|
</profile>
|
|
|
|
<!-- Collection of properties for use during package testing -->
|
|
<profile>
|
|
<id>packagetests-enabled</id>
|
|
<activation>
|
|
<property>
|
|
<name>gatk.packagetests.enabled</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<maven.javadoc.skip>true</maven.javadoc.skip>
|
|
<gatk.generate-gatk-extensions.skipped>true</gatk.generate-gatk-extensions.skipped>
|
|
<gatk.jar.phase>none</gatk.jar.phase>
|
|
<gatk.unpack.phase>none</gatk.unpack.phase>
|
|
<gatk.shade.phase>none</gatk.shade.phase>
|
|
<gatk.generate-resources.phase>none</gatk.generate-resources.phase>
|
|
<gatk.process-resources.phase>none</gatk.process-resources.phase>
|
|
<gatk.process-test-resources.phase>none</gatk.process-test-resources.phase>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
</project>
|