gatk-3.8/public/gatk-root/pom.xml

740 lines
33 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 parent 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
-->
<groupId>org.broadinstitute.gatk</groupId>
<artifactId>gatk-root</artifactId>
<version>3.7-SNAPSHOT</version>
<packaging>pom</packaging>
<name>GATK Root</name>
<prerequisites>
<maven>3.0.4</maven>
</prerequisites>
<properties>
<sourceEncoding>UTF-8</sourceEncoding>
<project.build.sourceEncoding>${sourceEncoding}</project.build.sourceEncoding>
<project.reporting.outputEncoding>${sourceEncoding}</project.reporting.outputEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.build.timestamp.format>yyyy/MM/dd HH:mm:ss</maven.build.timestamp.format>
<gatk.basedir>${project.basedir}/../..</gatk.basedir>
<gatk.committests.skipped>true</gatk.committests.skipped>
<gatk.unittests.skipped>${gatk.committests.skipped}</gatk.unittests.skipped>
<gatk.integrationtests.skipped>${gatk.committests.skipped}</gatk.integrationtests.skipped>
<gatk.queuetests.skipped>${gatk.committests.skipped}</gatk.queuetests.skipped>
<gatk.largescaletests.skipped>true</gatk.largescaletests.skipped>
<gatk.knowledgebasetests.skipped>true</gatk.knowledgebasetests.skipped>
<gatk.queuetests.run>false</gatk.queuetests.run>
<scala.maxmemory>1g</scala.maxmemory>
<test.maxmemory>4g</test.maxmemory>
<java.gc.threads>4</java.gc.threads>
<java.gc.timeLimit>50</java.gc.timeLimit>
<java.gc.heapFreeLimit>10</java.gc.heapFreeLimit>
<test.args>-Xmx${test.maxmemory} -XX:+UseParallelOldGC -XX:ParallelGCThreads=${java.gc.threads} -XX:GCTimeLimit=${java.gc.timeLimit} -XX:GCHeapFreeLimit=${java.gc.heapFreeLimit}</test.args>
<test.listeners>org.testng.reporters.FailedReporter,org.testng.reporters.JUnitXMLReporter,org.broadinstitute.gatk.utils.TestNGTestTransformer,org.broadinstitute.gatk.utils.GATKTextReporter,org.uncommons.reportng.HTMLReporter</test.listeners>
<!-- Version numbers for picard and htsjdk -->
<htsjdk.version>2.5.0</htsjdk.version>
<picard.version>2.5.0</picard.version>
</properties>
<!-- Dependency configuration (versions, etc.) -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>com.google.code.cofoja</groupId>
<artifactId>cofoja</artifactId>
<version>1.2-20140817</version>
</dependency>
<dependency>
<groupId>com.github.samtools</groupId>
<artifactId>htsjdk</artifactId>
<version>${htsjdk.version}</version>
2014-02-05 02:27:19 +08:00
<exclusions>
<!-- The jdk15 classfier seems to throw off the normal dependency resolution,
leading to both 6.8 and 5.0-jdk15 on the classpath, then leading to an old
version testng loading, as seen by the super old TestNG4751Configurator.
-->
2014-02-05 02:27:19 +08:00
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.broadinstitute</groupId>
<artifactId>picard</artifactId>
<version>${picard.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>
<dependency>
<groupId>colt</groupId>
<artifactId>colt</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>it.unimi.dsi</groupId>
<artifactId>fastutil</artifactId>
<version>6.5.3</version>
</dependency>
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.9-RC1</version>
</dependency>
<!-- slf4j bindings must only be at the package level: http://www.slf4j.org/manual.html -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>gov.nist.math</groupId>
<artifactId>jama</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>net.sf.jgrapht</groupId>
<artifactId>jgrapht</artifactId>
<version>0.8.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.18</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jexl</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>3.2.7</version>
</dependency>
<dependency>
<groupId>net.java.dev.jets3t</groupId>
<artifactId>jets3t</artifactId>
<version>0.8.1</version>
</dependency>
<dependency>
<groupId>us.levk</groupId>
<artifactId>drmaa-gridengine</artifactId>
<version>6.2u5</version>
</dependency>
<dependency>
<groupId>net.sf.snpeff</groupId>
<artifactId>snpeff</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.1.1</version>
</dependency>
<!--
For com.sun.javadoc
See also: http://sunnytalkstech.blogspot.in/2011/08/maven-dependency-for-toolsjar-in-jdk7.html
-->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.4.2</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.caliper</groupId>
<artifactId>caliper</artifactId>
<version>0.5-rc1</version>
<scope>test</scope>
<exclusions>
<!--
TODO: After upgrade to caliper 1.0-beta-1 or later, this may need a revisit.
Possibly other modules may need to exclude *their* old guava versions.
-->
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
<!-- Dependencies for custom testng reports -->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- Plugin configuration -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
</plugin>
<plugin>
<groupId>com.lukegb.mojo</groupId>
<artifactId>gitdescribe-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
</plugin>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<configuration>
<jvmArgs>
<jvmArg>-Xmx${scala.maxmemory}</jvmArg>
</jvmArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
</plugin>
Added vectorized PairHMM implementation by Mohammad and Mustafa into the Maven build of GATK. C++ code has PAPI calls for reading hardware counters Followed Khalid's suggestion for packing libVectorLoglessCaching into the jar file with Maven Native library part of git repo 1. Renamed directory structure from public/c++/VectorPairHMM to public/VectorPairHMM/src/main/c++ as per Khalid's suggestion 2. Use java.home in public/VectorPairHMM/pom.xml to pass environment variable JRE_HOME to the make process. This is needed because the Makefile needs to compile JNI code with the flag -I<JRE_HOME>/../include (among others). Assuming that the Maven build process uses a JDK (and not just a JRE), the variable java.home points to the JRE inside maven. 3. Dropped all pretense at cross-platform compatibility. Removed Mac profile from pom.xml for VectorPairHMM Moved JNI_README 1. Added the catch UnsatisfiedLinkError exception in PairHMMLikelihoodCalculationEngine.java to fall back to LOGLESS_CACHING in case the native library could not be loaded. Made VECTOR_LOGLESS_CACHING as the default implementation. 2. Updated the README with Mauricio's comments 3. baseline.cc is used within the library - if the machine supports neither AVX nor SSE4.1, the native library falls back to un-vectorized C++ in baseline.cc. 4. pairhmm-1-base.cc: This is not part of the library, but is being heavily used for debugging/profiling. Can I request that we keep it there for now? In the next release, we can delete it from the repository. 5. I agree with Mauricio about the ifdefs. I am sure you already know, but just to reassure you the debug code is not compiled into the library (because of the ifdefs) and will not affect performance. 1. Changed logger.info to logger.warn in PairHMMLikelihoodCalculationEngine.java 2. Committing the right set of files after rebase Added public license text to all C++ files Added license to Makefile Add package info to Sandbox.java Conflicts: protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/haplotypecaller/HaplotypeCaller.java protected/gatk-protected/src/main/java/org/broadinstitute/sting/gatk/walkers/haplotypecaller/PairHMMLikelihoodCalculationEngine.java protected/gatk-protected/src/main/java/org/broadinstitute/sting/utils/pairhmm/DebugJNILoglessPairHMM.java protected/gatk-protected/src/main/java/org/broadinstitute/sting/utils/pairhmm/JNILoglessPairHMM.java protected/gatk-protected/src/main/java/org/broadinstitute/sting/utils/pairhmm/VectorLoglessPairHMM.java public/VectorPairHMM/src/main/c++/.gitignore public/VectorPairHMM/src/main/c++/LoadTimeInitializer.cc public/VectorPairHMM/src/main/c++/LoadTimeInitializer.h public/VectorPairHMM/src/main/c++/Makefile public/VectorPairHMM/src/main/c++/Sandbox.cc public/VectorPairHMM/src/main/c++/Sandbox.h public/VectorPairHMM/src/main/c++/Sandbox.java public/VectorPairHMM/src/main/c++/Sandbox_JNIHaplotypeDataHolderClass.h public/VectorPairHMM/src/main/c++/Sandbox_JNIReadDataHolderClass.h public/VectorPairHMM/src/main/c++/baseline.cc public/VectorPairHMM/src/main/c++/define-double.h public/VectorPairHMM/src/main/c++/define-float.h public/VectorPairHMM/src/main/c++/define-sse-double.h public/VectorPairHMM/src/main/c++/define-sse-float.h public/VectorPairHMM/src/main/c++/headers.h public/VectorPairHMM/src/main/c++/jnidebug.h public/VectorPairHMM/src/main/c++/org_broadinstitute_sting_utils_pairhmm_DebugJNILoglessPairHMM.cc public/VectorPairHMM/src/main/c++/org_broadinstitute_sting_utils_pairhmm_DebugJNILoglessPairHMM.h public/VectorPairHMM/src/main/c++/org_broadinstitute_sting_utils_pairhmm_VectorLoglessPairHMM.cc public/VectorPairHMM/src/main/c++/org_broadinstitute_sting_utils_pairhmm_VectorLoglessPairHMM.h public/VectorPairHMM/src/main/c++/pairhmm-template-kernel.cc public/VectorPairHMM/src/main/c++/pairhmm-template-main.cc public/VectorPairHMM/src/main/c++/run.sh public/VectorPairHMM/src/main/c++/shift_template.c public/VectorPairHMM/src/main/c++/utils.cc public/VectorPairHMM/src/main/c++/utils.h public/VectorPairHMM/src/main/c++/vector_function_prototypes.h
2014-03-06 01:30:29 +08:00
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
</plugin>
<!--
surefire/failsafe configurations are global, even across poms
not directly aggregated, for example package-tests/pom.xml
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<!-- See explicit executions below -->
<skip>true</skip>
<failIfNoTests>false</failIfNoTests>
<useFile>false</useFile>
<reportFormat>plain</reportFormat>
<argLine>${test.args}</argLine>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>${test.listeners}</value>
</property>
</properties>
<systemPropertyVariables>
<gatkdir>${gatk.basedir}</gatkdir>
<clover.pertest.coverage>diff</clover.pertest.coverage>
<java.awt.headless>true</java.awt.headless>
<queuetest.run>${gatk.queuetests.run}</queuetest.run>
<java.io.tmpdir>${java.io.tmpdir}</java.io.tmpdir>
</systemPropertyVariables>
</configuration>
<executions>
<execution>
<id>default-test</id>
<phase>none</phase>
</execution>
<execution>
<!-- run all non integration tests -->
<id>unit-tests</id>
<goals>
<goal>test</goal>
</goals>
<configuration>
<!-- TODO: Re-enable unit tests by default? -->
<skip>${gatk.unittests.skipped}</skip>
<reportsDirectory>${project.build.directory}/surefire-reports/unit/${test}</reportsDirectory>
<includes>
<include>**/*UnitTest.class</include>
</includes>
<systemPropertyVariables>
<testType>unit</testType>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<configuration>
<!-- See explicit executions below -->
<skip>true</skip>
<failIfNoTests>false</failIfNoTests>
<useFile>false</useFile>
<reportFormat>plain</reportFormat>
<argLine>${test.args}</argLine>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>${test.listeners}</value>
</property>
</properties>
<systemPropertyVariables>
<gatkdir>${gatk.basedir}</gatkdir>
<clover.pertest.coverage>diff</clover.pertest.coverage>
<java.awt.headless>true</java.awt.headless>
<queuetest.run>${gatk.queuetests.run}</queuetest.run>
<java.io.tmpdir>${java.io.tmpdir}</java.io.tmpdir>
</systemPropertyVariables>
</configuration>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<!-- run integration tests -->
<configuration>
<!-- TODO: Re-enable integration tests by default? -->
<skip>${gatk.integrationtests.skipped}</skip>
<reportsDirectory>${project.build.directory}/failsafe-reports/integration/${it.test}</reportsDirectory>
<summaryFile>${project.build.directory}/failsafe-reports/integration/failsafe-summary-${it.test}.xml</summaryFile>
<includes>
<include>**/*IntegrationTest.class</include>
</includes>
<systemPropertyVariables>
<testType>integration</testType>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>queue-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<!-- run queue dry run tests -->
<configuration>
<!-- TODO: Re-enable queue tests by default? -->
<skip>${gatk.queuetests.skipped}</skip>
<reportsDirectory>${project.build.directory}/failsafe-reports/queue/${it.test}</reportsDirectory>
<summaryFile>${project.build.directory}/failsafe-reports/queue/failsafe-summary-${it.test}.xml</summaryFile>
<includes>
<include>**/*QueueTest.class</include>
</includes>
<systemPropertyVariables>
<testType>queue</testType>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>large-scale-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<!-- run large scale tests -->
<configuration>
<skip>${gatk.largescaletests.skipped}</skip>
<reportsDirectory>${project.build.directory}/failsafe-reports/largescale/${it.test}</reportsDirectory>
<summaryFile>${project.build.directory}/failsafe-reports/largescale/failsafe-summary-${it.test}.xml</summaryFile>
<includes>
<include>**/*LargeScaleTest.class</include>
</includes>
<systemPropertyVariables>
<testType>largescale</testType>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<id>knowledge-base-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<!-- run knowledge base tests -->
<configuration>
<skip>${gatk.knowledgebasetests.skipped}</skip>
<reportsDirectory>${project.build.directory}/failsafe-reports/knowledgebasetests/${it.test}</reportsDirectory>
<summaryFile>${project.build.directory}/failsafe-reports/knowledgebasetests/failsafe-summary-${it.test}.xml</summaryFile>
<includes>
<include>**/*KnowledgeBaseTest.class</include>
</includes>
<systemPropertyVariables>
<testType>knowledgebasetests</testType>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.sortpom</groupId>
<artifactId>maven-sortpom-plugin</artifactId>
<version>2.2</version>
<configuration>
<createBackupFile>false</createBackupFile>
<predefinedSortOrder>custom_1</predefinedSortOrder>
<lineSeparator>\n</lineSeparator>
<encoding>${sourceEncoding}</encoding>
<keepBlankLines>true</keepBlankLines>
<sortDependencies>scope</sortDependencies>
<nrOfIndentSpace>4</nrOfIndentSpace>
<expandEmptyElements>false</expandEmptyElements>
</configuration>
<executions>
<execution>
<goals>
<goal>sort</goal>
</goals>
<phase>verify</phase>
</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>
<version>1.0.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
</plugin>
</plugins>
</pluginManagement>
<!-- Invoke plugins that always run -->
<plugins>
<plugin>
<groupId>com.lukegb.mojo</groupId>
<artifactId>gitdescribe-maven-plugin</artifactId>
<configuration>
<extraArguments>
<param>--long</param>
</extraArguments>
<setReactorProjectsProperties>true</setReactorProjectsProperties>
<descriptionProperty>git.version</descriptionProperty>
<failOutput>exported</failOutput>
</configuration>
<executions>
<execution>
<id>gitdescribe-initialize</id>
<goals>
<goal>gitdescribe</goal>
</goals>
<phase>initialize</phase>
</execution>
<execution>
<id>gitdescribe-presite</id>
<goals>
<goal>gitdescribe</goal>
</goals>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<!-- TODO: gitdescribe plugin doesn't allow null prefixes -->
<executions>
<execution>
<id>fix-version-initialize</id>
<goals>
<goal>regex-property</goal>
</goals>
<phase>initialize</phase>
<configuration>
<name>build.version</name>
<value>${git.version}</value>
<regex>git-</regex>
</configuration>
</execution>
<execution>
<id>fix-version-pre-site</id>
<goals>
<goal>regex-property</goal>
</goals>
<phase>pre-site</phase>
<configuration>
<name>build.version</name>
<value>${git.version}</value>
<regex>git-</regex>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.sortpom</groupId>
<artifactId>maven-sortpom-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>sort</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<!--
The pom for com.pyx4j:maven-junction-plugin:1.0.3 points to
sysinternals:junction:1.04:exe. This file is only hosted in the repo
http://www.pyx4me.com/maven2, and the website keeps going down.
This file is only used on windows, but the maven-plugin devs never finished
implementing *plugin* dependency exclusions: http://jira.codehaus.org/browse/MNG-2163
Until someone updates or replaces this 2007 plugin with a new plugin using Java 7's Files class,
for now we copy over the artifact just in case the website is unavailable.
See also: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#createSymbolicLink(java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.attribute.FileAttribute...)
-->
<execution>
<id>install-sysinternals-junction</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>initialize</phase>
<inherited>false</inherited>
<configuration>
<file>${gatk.basedir}/public/repo/sysinternals/junction/1.04/junction-1.04.exe</file>
<pomFile>${gatk.basedir}/public/repo/sysinternals/junction/1.04/junction-1.04.pom</pomFile>
<packaging>exe</packaging>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<excludeDefaults>true</excludeDefaults>
</reporting>
<repositories>
<repository>
<id>gatk.public.repo.local</id>
<name>GATK Public Local Repository</name>
<url>file:${gatk.basedir}/public/repo</url>
</repository>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>broad.artifactory.snapshots</id>
<name>Broad Institute Artifactory SNAPSHOTs</name>
<url>https://artifactory.broadinstitute.org/artifactory/libs-snapshot</url>
</repository>
</repositories>
</project>