###Build
Dependencies (and the rest of the build process) are managed by Maven. To build:
- Install Maven.
- Clone repository. Navigate a command prompt to the folder.
- Run
mvn clean install
, which will build and install all three projects.
Useful Maven Commands:
- Run
mvn clean install
from parent directory to do a full build. - Run
mvn eclipse:eclipse
to build an Eclipse project for one of the modules. - Run
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
to build an Eclipse project with javadocs and sources linked. - Run
mvn clean compile assembly:single
in one of the module folders to build a jar with dependencies included source - Run
mvn test jacoco:report
from parent directory to run tests and generate a jacoco coverage report. - Run
mvn findbugs:findbugs
from parent directory to generate xml findbugs reports
Travis CI Initially we configured our build to run on Travis CI
Jenkins
Since Travis CI did not meet the project requirements, we created a Jenkins server running on a local vagrant machine. Here is a screenshot of the web interface:
As indicated above, Maven manages our dependencies and the Jenkins server uses Maven to run the build process using. Here is a screenshot of a successful build notification.
Because we are running this locally, that is, without a public ip address, we could not setup a git hook. However, we set up a Git poll that simply pings the GitHub repository every 15 minutes (this is adjustable) and makes a build if there are changes
We created a slave vm (also using vagrant) that the master connects to via SSH to setup and execute tasks:
Here is a screenshot of the log when "slave 3" picked up a build job:
Our Jenkins config file and the config file for our job are found under jenkins/
.