Maven Build
The Basics
To build the code, you need Maven (v3) installed and Java (1.6). With that in place, you should be able to build everything with a:
brooklyn% mvn clean install
Key things to note if you're new to Maven:
You may need more JVM memory, e.g. at the command-line (or in
.profile
):export MAVEN_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=256m
You can do this in specific projects as well.
Add
-DskipTests
to skip tests.Run
-PIntegration
to run integration tests, or-PLive
to run live tests (tests described here)Nearly all the gory details are in the root
pom.xml
, which is referenced by child project poms.You can also open and use the code in your favourite IDE, although you may hit a few snags (that link has some tips for resolving them too)
Other Handy Hints
On some Ubuntu (e.g. 10.4 LTS) maven v3 is not currently available from the repositories. Some instructions for installing at are at superuser.com.
The mvnf script (get the gist here) simplifies building selected projects, so if you just change something in
software-webapp
and then want to re-run the examples you can do:examples/simple-web-cluster% mvnf ../../{software/webapp,usage/all}
The developers catalog (developers-catalog.xml) uses artifacts from your local
~/.m2/repository/...
(after building from source). This avoids unnecessary web requests to Maven Central or Sonatype, and will allow you to work off-line.wget /v/0.6.0-M2/dev/build/developers-catalog.xml > ~/.brooklyn/catalog.xml
Appendix: Sample Output
A healthy build will look something like the following, including a few warnings (which we have looked into and understand to be benign and hard to get rid of them, although we'd love to if anyone can help!):
brooklyn% mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Brooklyn Parent Project
[INFO] Brooklyn API
[INFO] Brooklyn Test Support
[INFO] Brooklyn Core
...
Mar 29, 2012 4:30:17 PM java.util.jar.Attributes read
WARNING: Duplicate name in Manifest: Manifest-Version.
Ensure that the manifest does not have duplicate entries, and
that blank lines separate individual sections in both your
manifest and in the META-INF/MANIFEST.MF entry in the jar file.
...
[WARNING] We have a duplicate org/jclouds/cloudsigma/CloudSigmaAsyncClient.class in
/Users/alex/.m2/repository/org/jclouds/provider/cloudsigma-zrh/1.4.0/cloudsigma-zrh-1.4.0.jar
...
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ brooklyn-all ---
[WARNING] JAR will be empty - no content was marked for inclusion!
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Brooklyn Parent Project ........................... SUCCESS [0.813s]
[INFO] Brooklyn API ...................................... SUCCESS [6.115s]
[INFO] Brooklyn Test Support ............................. SUCCESS [4.592s]
[INFO] Brooklyn Core ..................................... SUCCESS [1:20.536s]
[INFO] Brooklyn Policies ................................. SUCCESS [57.996s]
[INFO] Brooklyn Software Base ............................ SUCCESS [29.869s]
[INFO] Brooklyn OSGi Software Entities ................... SUCCESS [9.392s]
[INFO] Brooklyn Web App Software Entities ................ SUCCESS [49.606s]
[INFO] Brooklyn Messaging Software Entities .............. SUCCESS [12.198s]
[INFO] Brooklyn NoSQL Data Store Software Entities ....... SUCCESS [9.205s]
[INFO] Brooklyn Database Software Entities ............... SUCCESS [7.815s]
[INFO] Brooklyn Whirr Base Entities ...................... SUCCESS [21.292s]
[INFO] Brooklyn Hadoop System Entities ................... SUCCESS [9.972s]
[INFO] Brooklyn OpenShift PaaS System Entities ........... SUCCESS [11.857s]
[INFO] Brooklyn Web Console .............................. SUCCESS [1:00.814s]
[INFO] Brooklyn Launcher ................................. SUCCESS [1:00.603s]
[INFO] Brooklyn All Things ............................... SUCCESS [23.358s]
[INFO] hello-world-webapp Maven Webapp ................... SUCCESS [2.521s]
[INFO] Brooklyn Simple Web Cluster Example ............... SUCCESS [5.860s]
[INFO] Brooklyn Hadoop and Whirr Example ................. SUCCESS [4.892s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7:52.328s
[INFO] Finished at: Thu Mar 29 16:30:17 BST 2012
[INFO] Final Memory: 180M/528M
[INFO] ------------------------------------------------------------------------