You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Overview

Grouper's internal build mechanism is handled via Gradle. The build is orchestrated by a parent build.gradle file for the root grouper project and a number of individual build.gradle file for every module that Grouper presently houses. Each build.gradle file inherits from the parent build.gradle file and in turn is able to specify its own requirements for dependency management and source tree structure. The list of Grouper modules that are recognized by the Gradle build is specified via a settings.gradle in a specific order to account for the build dependencies of the modules. There is also one gradle.properties file which hosts specific build settings for the project, such as groupid, java version and dependency versions used throughout the project. 

Build

To run the full build, issue the following command at the root:

./gradlew build -x test -x javadoc --parallel --stacktrace

The same command can be used inside a specific module directory to build that module only. 

The above command will use the Gradle wrapper to download an appropriate Gradle version once to be used for the build. This removes the requirement for a developer to explicitly have Gradle downloaded and installed, but if a Gradle installation is already available, the same command can be used via invoking the native Gradle instance installed. Build artifacts are produced for each module inside the build/libs directory. JAR files are produced for main, tests and javadoc. 

./gradle build -x test -x javadoc --parallel --stacktrace

Windows Gradle Wrapper

Windows version of the wrapper command is also available as gradlew.bat

Gradle Wrapper Updates

The Gradle wrapper need only exist at the root of the project. The wrapper can be updated to note a specific newer version of a Gradle via the following command:

./gradle wrapper

Javadocs

To produce the Javadoc for the entire project, run the following command at the root:

./gradlew build alljavadoc -x test -x javadoc --parallel --stacktrace

The above command aggregates the javadocs for all grouper modules inside the root build/javadoc directory. 

Travis CI Builds

Grouper is configured against Travis CI to execute the full build on every commit. Travis builds all grouper branches provided there is a .travis.yml inside the branch at the root of the repository. This is a YAML configuration file that tells Travis what version of Java should be available, which commands to use for the build lifecycle and which scripts to execute after a successful build. 

Windows Gradle Wrapper

The configuration file must be massaged for every branch to tell Travis to limit the build to that branch only, for faster builds.

Publishing Javadocs

As part of the Travis CI build, Javadocs are published to the gh-pages of the repository once a successful builds. This is handled via the javadocs-ghpages.sh script that runs after the build. The script will attempt to collect all project javadocs and push them to the appropriate branch. In order for the push to succeed, an OAUTH token is made available to the script to do the job. The OAUTH token must be generated by a developer with push rights to the repo, and must be encrypted and placed inside the .travis.yml file under a "secure" heading. 

Windows Gradle Wrapper

The script file must be massaged for every branch to tell Travis to limit the build to that branch only.

  • No labels