Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To implement our automatic builds, we use the popular Maven tool in conjunction with Tycho, a set of Maven plug-ins that allow Maven to build Eclipse projects. Our KLay layouters library is built using Apache Ant. To implement our continuous integration builds, we use Atlassian Bamboo.

...

Tycho is a set of Maven plugins that handles compiling and dependency management as well as bundling of Eclipse plug-ins. Tycho understands Eclipse metadata files such as plugin.xml or feature.xml, provides dependency information extracted from those files, and provides an Eclipse instance for compiling and packaging Eclipse bundles.

Apache Ant

Ant is a very popular Java build tool. While Maven wants to know metadata about a project and then knows what to do to build it, Ant works by specifying exactly what to do to build a project. These steps are configured in a build.xml file. We try to avoid using Ant, but still have Ant build files around for jobs too specialized to be properly handled by Maven.

Bamboo

While Maven and Tycho know how to compile KIELER, Bamboo knows when to compile KIELER and what to do with the compiled project. Bamboo has access to our source code repositories and triggers continuous integration builds every time someone pushes new code into a repository. It also does a full build every night and copies the results onto our nightly build update site to be accessed by people all around the world. And beyond. Tell your friends!

...

  1. Eclipse metadata and POM files are not synchronized. Thus, if the version of an Eclipse plug-in changes, its pom.xml needs to be updated accordingly.
  2. The repository POM directories contain product files and product icons. These are copies of the files found in the corresponding branding plug-ing (such as de.cau.cs.kieler.core.product) and have to be manually synchronized.

The Curious Case of Building the KLay Library

We distribute our KLay layout algorithms in two library files: one that contains just our algorithms, and another one that also contains dependencies such as required EMF classes. To build the KLay libraries, navigate to the /build/de.cau.cs.kieler.klay.libraries directory and do the following:

  1. Set the PRODUCT environment variable to point to a complete installation of KIELER. You can get one by using the automatic Maven build.
  2. Run Ant on the build.xml file. This will produce both versions of the KLay layout library.

Continuous and Nightly Builds

...