This repository is used for building a complete CDAP release.
This checks out CDAP, CDAP Security Extensions,
and Cask Hydrator Plugins. The external application
artifact repositories are located under app-artifacts
, while
security extensions are located under security-extensions
, so
CDAP should be built using
-Dadditional.artifacts.dir=$(pwd)/app-artifacts -Dsecurity.extensions.dir=$(pwd)/security-extensions
to include the additional projects in the CDAP Master packages.
This repository uses Git submodules to provide links to other
repositories. Cloning this repository with --recursive
will
automatically initialize and checkout the additional repositories.
These additional repositories are configured to track the correct
remote branches for a given CDAP release. This repository will have
the correct Git references stored for a particular tag. Checking
out a tag to your working directory will update the submodule Git
references to the ones used to build that tag.
If you cloned without using --recursive
, you will need to
initialize and checkout the submodules:
git submodule init
git submodule update
Starting with Git 1.8, it is possible to track remote branches
in Git submodules. These branches have already been configured
for each submodule, and the submodules can be updated to the
head of that branch by appending --remote
to the update command:
git submodule update --remote
The CDAP Security Extensions require you to have Apache Sentry 1.7.0
JARs in your local Maven repository. These JARs are not available from
Maven Central, so you may need to compile them. The correct branch
for Sentry is included as a submodule under apache-sentry
to make
compilation easy.
mvn clean install -DskipTests -f apache-sentry
Compiling the artifacts requires first building and installing the CDAP API JARs into your local Maven repository.
export MAVEN_OPTS="-Xmx3056m -XX:MaxPermSize=128m"
mvn install -DskipTests -B -am -pl cdap/cdap-api -P templates
mvn install -DskipTests -B -am -f cdap/cdap-app-templates -P templates
mvn package -P examples,templates,dist,release,rpm-prepare,rpm,deb-prepare,deb,tgz,unit-tests \
-Dgpg.passphrase=${GPG_PASSPHRASE} -Dgpg.useagent=false \
-Dadditional.artifacts.dir=$(pwd)/app-artifacts \
-Dsecurity.extensions.dir=$(pwd)/security-extensions