Versions Compared

Key

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

...

The basic structure of the POM files is the same for both, the pragmatics and semantics repository, and can be seen below:

Each plug-in and feature has a corresponding (usually rather small) POM file. The POM files in the features and plugins directories know about the different features and plug-ins. The parent POM file, which all other POM files copy basic configuration from, knows about the feature and plug-in POM files, as well as about every kind of build configuration we have (for building the pragmatics repository, for building the KWebS product, etc.). In addition, the build directory also contains a bunch of subdirectories . These also contain housing POM files that actually implement the different build configurations to produce our p2 repositories and our products we can deliver.

Using the KIELER Maven Build

Using the KIELER Maven build requires knowledge about two aspects: necessary configuration / required libraries and invoking Maven.

Necessary Configuration

KIELER needs to be built against a P2 repository generated from an Eclipse reference installation (the target platform). The command for doing that is described on this page. The target platform is available online so you don't have to worry about it when building KIELER on your local computer.

Invoking Maven

To actually build KIELER once all preliminaries are donethings: a working Maven installation (d'oh...) and knowledge about how exactly to trigger a build. We leave the former to you, but the latter is what this section is about.

To actually build KIELER, navigate to the /build/ directory and run the following command line:

...

  • klighdning – Builds a standalone version of the KLighDning server, based on the current nightly pragmatics update site.
  • kwebs – Builds a standalone version of the KWebS server, based on the current nightly pragmatics update site.
  • papyrus pragmatics – Builds a p2 repository that contains our feature for adding automatic layout to a Papyrus installation.pragmatics – Builds a p2 repository that contains our pragmatics featurespragmatics features. This is what would usually be pushed online for people to download as our nightly pragmatics build.
  • ptolemy-rcp – Produces a standalone version of our Ptolemy Model Viewer, based on the current nightly build pragmatics update site.

The following build profiles are available in the KIELER Semantics repository:

  • TODO: Add build profiles.

What to Be Aware of

There are some things that people need to be aware of to keep the build files in a valid state.

...

  1. Set the TARGET_PLATFORM environment variable to point to a local copy of our currently used target platform p2 repository. Ask Unknown User (cds) where you can get that.
  2. Set the KIELER_REPOSITORY environment variable to point to a local copy of a p2 repository of our pragmatics build. Again, ask Unknown User (cds) where you can get that.
  3. Run Ant on the build.xml file. This will produce both versions of the KLay layout library.
Note

We would love to switch our KLay library build over to Maven since that would allow us to publish the library in an official Maven artifact repository.

 

Continuous and Nightly Builds

There are basically three four different kinds of build plans for each of the KIELER projects:

  1. Continuous Plugins – Compiles the plug-ins and runs the unit tests on them. None of the compiled artifacts are published anywhere (in fact, no update site or product is even produced). This plan is triggered by pushing stuff into the repositories, giving early feedback regarding whether committed changes break anything.
  2. Nightly <Product> – Assembles distributable product files and/or update sites. Distributable files are published in the nightly build directory /home/kieler/public_html/files/nightly. Update sites are published in /home/kieler/public_html/updatesite/nightly. These plans are run once every night.
  3. Nightly Rating – Compiles the plug-ins and runs our code quality rating doclet on them. The result is a website published at /home/kieler/public_html/rating. This plan is run once every night.
  4. Release Builds – Continuous builds of release branches once a release is imminent. These usually run whenever changes are pushed into the repository.

...