Overview
Since GATK 3.0, we use Apache Maven (instead of Ant) as our build system, and IntelliJ as our IDE (Integrated Development Environment). This document describes how to get set up to use Maven as well as how to create an IntelliJ project around our Maven project structure.
Before you start
- Ensure that you have git clones of our repositories on your machine. See this document for details on obtaining the GATK source code from our Git repos.
Setting up Maven
Check whether you can run
mvn --version
on your machine. If you can't, install Maven from here.Ensure that the JAVA_HOME environment variable is properly set. If it's not, add the appropriate line to your shell's startup file:
for tcsh:
setenv JAVA_HOME \`/usr/libexec/java_home\`
for bash:
export JAVA_HOME=\`/usr/libexec/java_home\`
Note that the commands above use backticks, not single quotes.
Basic Maven usage
To compile everything, type:
mvn verify
To compile the GATK but not Queue (much faster!), the command is:
mvn verify -P\!queue
Note that the
!
needs to be escaped with a backslash to avoid interpretation by the shell.To obtain a clean working directory, type:
mvn clean
If you're used to using ant to compile the GATK, you should be able to feed your old ant commands to the
ant-bridge.sh
script in the root directory. For example:./ant-bridge.sh test -Dsingle=MyTestClass
Setting up IntelliJ
Run
mvn test-compile
in your git clone's root directory.Open IntelliJ
File -> import project, select your git clone directory, then click "ok"
On the next screen, select "import project from external model", then "maven", then click "next"
Click "next" on the next screen without changing any defaults -- in particular:
- DON'T check "Import maven projects automatically"
- DON'T check "Create module groups for multi-module maven projects"
On the "Select Profiles" screen, make sure private and protected ARE checked, then click "next".
On the next screen, the "gatk-aggregator" project should already be checked for you -- if not, then check it. Click "next".
Select the 1.7 SDK, then click "next".
Select an appropriate project name (can be anything), then click "next" (or "finish", depending on your version of IntelliJ).
Click "Finish" to create the new IntelliJ project.
That's it! Due to Maven magic, everything else will be set up for you automatically, including modules, libraries, Scala facets, etc.
You will see a popup "Maven projects need to be imported" on every IntelliJ startup. You should click import unless you're working on the actual pom files that make up the build system.