News and Notes from the Makers of Nexus | Sonatype Blog

Hudson Pro: Where’s the Maven job type?

Written by Tim OBrien | May 03, 2011

One important difference between Hudson Open Source and Hudson Professional is how they support Maven 3.

Sonatype has developed state-of-the-art support for Maven 3 focusing on creating seamless integration between the internals of Hudson CI and Maven. Year of work on Maven 3 internals to support more efficient embedding along with our multi-year investment in bringing both JSR-330 support and GWT UI integration to Hudson CI has produced a CI system that support Maven 3 like no other on the market.

If you’ve used Hudson and Maven together in the past, you might be familiar with the Maven 2 project type that provides users with the ability to define a Maven build that is aware of a project’s POM. While we understood the motivation for a Maven-specific project type, we took our Maven support in an entirely difference direction. We created a Maven build that can be used a part of a larger freestyle build, and the reason we did this was to get away for the idea that a Maven build can only include one step, one call to a series of goals.

Sonatype found this to be more of a limitation than an advantage.

Supporting Real-world Maven Builds

Why? Consider an enterprise build - one that needs to prepare and perform a release. In the scenario it is essential that the build process contain two separate calls to release:prepare and release:perform. It also might be essential to call out to supporting scripts or other parts of the build that might fall outside of the scope of the Maven build. In a complex build environment, Maven is often not the only build tool involved in a process. Instead of binding our users to a single Maven-specific project type, we implemented Maven support as a builder to make sure that Hudson Professional users had as much flexibility as they needed to create quality enterprise builds.

Creating a New Maven 3 Job
If you are new to Hudson Professional and you are wondering how to create a new Maven 3 build, you should follow these simple steps:

1. Create a New Job
2. Select “Build a free-style Software Project”
3. Add a Build Step and select “Invoke” Maven.

Creating a New Maven 3 Project from a Git Repository

The following video demonstrates the process for creating a new Maven 3 project from a Git repository:

Creating a New Maven 3 Project from a Subversion Repository

The following video demonstrates the process for creating a new Maven 3 project from a Subversion repository: