Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 2 Next »

Our goal is to keep Code in the KIELER Mainline as stable as possible. Automatic plugin builds and tests after each commit and nightly RCA builds help to improve source code stability. As headless builds of Eclipse plugins and features are not trivial, the following software is used in KIELER

Headless Builds (Maven/Tycho)

Maven is a build tool for Java projects that handles automatic dependency management including in-build dependencies (the order in which packages are compiled) as well as dependencies to third party libraries, which are automatically fetched from special Maven repositories. A Maven build consists of several phases such as compile, package, etc. Within those phases several Maven plugins handle different tasks (or in maven-speak goals), for example the maven-compile-plugin compiles .java files into .class files. Maven builds are configured in XML files calles pom.xml. Those POM files may inherit configuration from a parent POM file, each package contains one pom.xml which containes package specific configuration and a reference to a parent pom.xml. The parent POM includes, besides common configuration, all module names of child POMs.

Tycho is a set of Maven plugins that handles compiling and dependency management as well as bundling of Eclipse plugins. This means Tycho can read and understand Eclipse metadata files such as plugin.xml or feature.xml, provides dependency information extracted from those files and an Eclipse runtime for compiling and packaging of Eclipse bundles.

Maven and Tycho in KIELER

In KIELER there is a parent POM located in build/de.cau.cs.kieler.parent, there are mid-level POMs in features and plugins and finally each plugin and feature directory contains a POM file. Furthermore to handle building an Eclipse P2 repository and the KIELER RCA there is a special repository project with its own POM in build/de.cau.cs.kieler.repository.

Building Kieler on the command line

A full KIELER build on the command line is done as follows

Full Build
. /home/java/java-env		#sets environment variables for java and maven
cd build/de.cau.cs.kieler.parent
mvn clean package

Afterwards the assembled RCA and P2 repository may be found in build/de.cau.cs.kieler.repository/target. Similarly single plugins or features are found in the target subdirectory of the respective package.

Automatic Builds

Maven with Tycho only provides the possibility of headless KIELER builds without starting eclipse. To facilitate automatic builds further Software to monitor source code repositories, start builds after each check-in, notify developers of failed builds, etc. is needed. For KIELER we are using Bamboo by Atlassian

Bamboo in KIELER

At the moment there are four jobs configured for KIELER

Continous Plugin Build

  • Builds and tests KIELER plugins after each commit
  • Sends notifications of failed builds to the responsible developer(s)

KIELER RCA Nightly

  • Builds all of KIELER including all plugins, features as well as the RCA and the KIELER P2 Repository every night.
  • Deploys RCA and repository to the download server
  • Sends notifications about failed commits to the responsible developer(s) and staff members

KIELER Rating Nightly

  • Builds and deploys the KIELER class rating website with a special javadoc doclet

Kieler QA Nightly

  • Runs nightly static code checkers, code metrics as PMD, FindBugs, Checkstyle etc.

This page is not migrated yet. Try the old wiki until someone fills me with content.

  • No labels