Maven 2.2.1

The Apache Maven team would like to announce the release of Maven 2.2.1.

Maven 2.2.1 is available for download.

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central place.

The core release is independent of the plugins available. Further releases of plugins will be made separately. See the Plugin List for more information.

We hope you enjoy using Maven! If you have any questions, please consult:

2.2.1 Release Notes

Maven 2.2.1 aims to correct several critical regressions related to the selection of the HttpClient-based Wagon implementation for HTTP/HTTPS transfers in Maven 2.2.0. The new release reverts this selection, reinstating the Sun-based - or lightweight - Wagon implementation as the default for this sort of traffic. However, Maven 2.2.1 goes a step further to provide a means of selecting which provider - or implementation - the user wishes to use for a particular transfer protocol. More information on providers can be found in our Guide to Wagon Providers.

In addition, Maven 2.2.1 addresses some long-standing problems related to injecting custom lifecycle mappings and artifact handlers. These custom components are now correctly loaded regardless of whether they come from a plugin with the extensions flag enabled, or from a pure build extension. In addition, custom artifact handlers now will be used to configure the attributes of the main project artifact in addition to any artifacts related to dependencies or project attachments created during the build.

The full list of changes can be found in our issue management system, and is reproduced below.

Complete list of issues fixed in 2.2.1

  • MNG-3265 - maven-model Extension.equals causes NPE when any field is uninitialized
  • MNG-3506 - Custom ArtifactHandler not resolved for project when an additional plugin with extensions is defined in parent pom
  • MNG-3753 - ArtifactResolverDiagnoser.diagnose() fails with NPE if nested IOException has no detail message
  • MNG-4189 - Maven not picking up specific timestamped version dependency when a later timestamped version was downloaded and already present in the local repository
  • MNG-4218 - NPE in AbstractArtifactResolutionException if DefaultArtifactResolver.resolveTransitively is interrupted
  • MNG-4228 - [regression] Authorization failed: Not authorized by proxy.
  • MNG-4235 - [regression] Maven 2.2.0 produces invalid checksums during deployment to secured HTTP repo
  • MNG-4236 - [regression] http wagon uploads files twice with Maven 2.2.0 when preemptive auth is disabled (default setting)
  • MNG-4238 - Custom ArtifactHandler provided by build extension isn't used for project artifact
  • MNG-4240 - Direct dependencies with scope == provided will not have their transitive dependencies resolved for compiling and testing
  • MNG-4270 - ArtifactHandler, LifecycleMapping from plugin dependency is not used when plugin extensions are enabled
  • MNG-4275 - [regression] Direct relocations no longer log at WARNING level : MNG-3380 conflicts with MNG-1689
  • MNG-4254 - Support selection of wagon implementation for a particular protocol
  • MNG-4279 - wagon provider selection should fail gracefully and use protocol for roleHint if protocol-provider roleHint isn't available.
  • MNG-4290 - Update guide-http-settings to reflect the fact that sun-based http has been restored as the default for the http/s wagons.