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.
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.
The jetty trunk checkout will pull all code required to build the jetty project.
(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.