Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Jetty6, Maven, and YOU!

Jetty leverages maven for its build. There are a few key points to understand when working with the jetty build, as a developer and as a more casual committer, or simply someone that likes to have the bleeding edge of software.

Administrative Project Files

Jetty makes use of a separately versioned administrative project file located as its own project structure in svn. Only developers will need to interact with this file so the vast majority of people can just skip to the next step. This file is released separately from individual jetty releases so it is highly likely that multiple jetty versions will make use of the same jetty-parent version. The jetty-project and jetty-contrib-parent both register this project file as their parent. These are the only projects that will likely register this parent pom as their parent. Downstream artifacts will reference either jetty-project or jetty-contrib-parent as their parent project files.

Code Block

The svn location for this file is:

No Format
> svn co jetty-pom

There is also another artifact under this project called jetty-build-resources. This artifact contains shared resources that are used by the vast majority of jetty artifacts in order to build and similar to the jetty-parent are not subject to release with individual jetty releases.

The administrative project file contains information about the developers of jetty, mailing lists, distribution information, shared plugin configurations, etc.

Jetty Project Structure

Jetty is comprised of two separate and distinct source repositories. These are referred to as the jetty trunk which is all core artifacts to jetty, and the jetty contrib trunk which are artifacts that add different functionalities to jetty such as integrations, etc. The intent is that each of these project trunks should be able to be build separately but that they will also function together when the builds are meshed with svn:externals. This linkage behavior it implemented with profiles in maven and is referred to below.

Jetty Trunk

The jetty trunk checkout will pull all code required to build the jetty project.

The svn location for this project is:

No Format
> svn co jetty

To build just the jetty core project all that needs to be run is 'mvn install' but since the jetty-contrib project is brought in via svn:externals declaration and as mentioned above it ideally a separate entity a profile needs to be activated to factor in the contrib modules. Running 'mvn -Pall-modules install' will trigger these contrib modules to also be built in the reactor.

No Format
(just jetty core artifacts)
> mvn install
(contrib artifacts as well)
> mvn -Pall-modules install

Jetty Contrib Trunk

The jetty contrib trunk is pulled into the normal jetty build into the 'modules/contrib' directory but can be worked with outside of the jetty trunk.

The svn location for this project is:

No Format
> svn co jetty-contrib

By default the jetty-contrib-parent does not declare the projects within as modules as ideally in the future the individual jetty contrib modules will be separately releasable on their own timelines as opposed to being lockstep with jetty releases. Whether this happens or not remains to be seen, but to build all registered artifacts in jetty-contrib simply execute maven with the all-modules profile activated. Not all modules in jetty-contrib build directly with maven so they may or may not be activated with this profile but within the jetty-contrib project, all committers have access to adding or removing modules from the all-modules profile.

titleImportant Jetty Contrib Note

Access to versions of jetty core artifacts are governed by the ${jetty.version} property in the jetty-contrib-parent. This is to facilitate the releasing of jetty contrib easily since the jetty-contrib artifacts are not automatically reversioned (and associated dependencies) during the release process. Please use ${jetty.version} as the version for core jetty artifact dependency declarations.

Contact the core Jetty developers at
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery