Maven 2.0.10

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

Maven 2.0.10 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:

For news and information, see:

2.0.10 Release Notes

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

Changes that may affect existing builds.

This release was extensively screened for regressions with Release Candidates but several things are worth noting.

  • MNG-3974 - The mirror syntax order did not match the documentation. In 2.0.9, the last mirror that matched a repository would win. The correct behavior in 2.0.10 is the first match wins. Using the syntax that lets you exclude a repository from a match (*,!notthisone,thisone), it should always be possible to ensure your matching is deterministic regardless of order. See the settings specification for more information.
  • MNG-3424 - in 2.0.9 we made the dependency order deterministic using linkedHashMaps, in 2.0.10, the rest of the hashMaps in the pom model have been replaced with linkedHashMaps. This may cause subtle changes in the ordering of executions or other processing since 2.0.9. The fix would be to reorder the elements that cause problems, and know that it will be predictable from now on.

Plugin Versions defined in the 2.0.10 super pom:

See the raw super pom for 2.0.10 here.

Default Plugin Versions (Bold indicates a change from 2.0.9)
Antrun 1.3
Assembly 2.2-beta-2
Clean 2.2
Compiler-plugin 2.0.2
Dependency 2.0
Deploy 2.4
Ear 2.3.1
Ejb 2.1
Install 2.2
Jar 2.2
Javadoc 2.5
Plugin 2.4.3
Rar 2.2
Release 2.0-beta-8
Resources 2.3
Site 2.0-beta-7
Source 2.0.4
Surefire 2.4.3
War 2.1-alpha-2

Complete list of issues fixed in 2.0.10


  • [MNG-1999] - Reporting inheritance does not work properly
  • [MNG-2433] - Maven looks for snapshots in offline mode
  • [MNG-2695] - -o makes build fail for snapshot plugins
  • [MNG-2739] - Repository entries are not validated and NPE will occur
  • [MNG-3052] - Transitive Dependency not found when repo is not listed
  • [MNG-3070] - $x properties no longer expanded in /version tag after 2.0.3
  • [MNG-3106] - Multiple profile activation conditions broken
  • [MNG-3271] - excludeDefaults does not seem to work
  • [MNG-3314] - offline build not running, when having SNAPSHOT dependencies
  • [MNG-3380] - MavenMetadataSource retrieves ResolutionGroup without consulting ManagedVersionMap, is problem when relocation
  • [MNG-3497] - rar, par and ejb3 archives should not be added to classpath
  • [MNG-3527] - profile deactivation has no affect
  • [MNG-3545] - Option -P-profile overridden if profile is activebyDefault
  • [MNG-3581] - stage:copy ClassCastException with maven 2.0.9
  • [MNG-3628] - When running offline, snapshot artifcats cannot be resolved even if they have previously be dowloaded from a repository
  • [MNG-3639] - Ant 1.7.0 Task not found after upgrading from Maven 2.0.8 to 2.0.9
  • [MNG-3645] - Maven doesn't do strict model validation for POMs in the current reactor
  • [MNG-3680] - POM validation fails on projects in central repo starting with 2.0.10 RCs
  • [MNG-3701] - ClassCastException when building settings.xml with profiles that have activeByDefault set
  • [MNG-3717] - Maven prompts for a password when one is provided over SSH in some circumstances
  • [MNG-3723] - /usr/home/cmsslave/slave15/maven-site-staging/build/trunk is not interpolated
  • [MNG-3769] - [regression] Excluding relocated transitive dependencies does not work
  • [MNG-3776] - Namespace misspelled in settings.xml
  • [MNG-3805] - Ordering of extension class path is indeterministic
  • [MNG-3898] - can't generate Maven site: modello fails at xsd generation step due to a Boolean field in model
  • [MNG-3907] - Profile XSD has wrong namespace
  • [MNG-3921] - Extensions are subject to NPEs in their hashCode() impl
  • [MNG-3974] - New mirror syntax is not stopping on first match


  • [MNG-2609] - Mention 'activeByDefault' in the "Introduction to Build Profiles" guide
  • [MNG-2636] - Namespace settings-1.0.0.xsd correct?
  • [MNG-3224] - Maven XML schemes are not usable in XML catalogs
  • [MNG-3268] - Command line doesn't handle multiple -P correctly
  • [MNG-3424] - Respect ordering of elements as given in POM
  • [MNG-3503] - Shade MX* classes from plexus-utils
  • [MNG-3511] - Review fix for MNG-2166
  • [MNG-3520] - Korean message resource
  • [MNG-3571] - Allow use of ! when deactivating profiles
  • [MNG-3652] - set a user agent for Maven HTTP requests
  • [MNG-3975] - getArtifact(Artifact artifact, List remoteRepositories) should include Exception in debug log messages.

New Feature

  • [MNG-3219] - Create a CLIRR/JarDiff setup for 2.0.x and 3.0.x


  • [MNG-2883] - Make sure that the network isn't used for snapshots in offline mode when legacy repositories are used