Release Notes - Maven 2.x

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

Bug
  • 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
Improvement
  • 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.
Task
  • 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.

2.2.0 Release Notes

Maven 2.2.0 contains a few important changes that justify the version upgrade, instead of simply naming it 2.1.1. First, the Java requirement for Maven 2.2.0 has been upgraded to 1.5 or later. This upgrade was planned for 2.1.0, but that release still contained binaries that were compatible with JDK 1.4. In addition, due to some serious flaws in the version-expression POM transformation included in 2.1.0, this feature has been removed for the time being. Finally, some new default execution IDs have been added to Maven to enable the separation of configuration for plugins bound by the default lifecycle mappings, and for those invoked directly from the command line. All of these issues have been described below with their associated JIRA tickets.

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

Changes that may affect existing builds

  • MNG-4143 - Starting in 2.2.0, Maven will run only on Java 1.5 and later. You can still build projects for JDK1.4 and earlier using the approach documented in the Guide to Building JDK 1.4 Projects on JDK 1.5.
  • MNG-3401 - Executions with an id equal to default-phase (where phase is a valid lifecycle phase) may have unexpected results as it will be merged into the default lifecycle.
  • MNG-4140/4179 - Version-expression resolution during installation and deployment has been removed, returning to Maven 2.0.x behaviour.

Noteworthy changes and improvements

  • MNG-3401 - Starting in Maven 2.2.0, goals invoked directly from the command line can be configured in the POM separately from other plugin invocations using a special executionId called default-cli. Where previously, all configurations for command-line goals had to go in the plugin-level configuration, Maven 2.2.0 allows command-line-specific configurations to be separated into their own <execution>. For more information, see the Guide to Default Execution IDs.
  • MNG-3203 - Similar to MNG-3401, previous to Maven 2.2.0 it was impossible to separate configurations for different goals from a single plugin that were bound to the lifecycle by the default mappings for a given packaging. Beginning in Maven 2.2.0, it is possible to separate configurations for compiler:compile from those for compiler:testCompile using executions with IDs default-compile and default-testCompile respectively. In the case of the compiler plugin, this allows the separation of include and exclude patterns that are applied during the two compiler activities in the jar build. For more information, see the Guide to Default Execution IDs.
  • MNG-4179 - Regression: In Maven 2.1.0, artifact downloads hang when a transfer failure occurred. This has been corrected.
  • MNG-4184 - Regression: Maven 2.1.0 failed with a cyclic dependency in cases where a dependency for a report plugin is build as part of the current reactor. This has been corrected.
  • MNG-4167 - Regression: Version-expression resolution for POMs in Maven 2.1.0 took place as a transformation phase during artifact installation and deployment. However, this caused the deployed POM to be different from the one signed by the GPG plugin. Because of this and other use-case problems, version-expression resolution has been removed from Maven 2.2.0 pending a more comprehensive design review. MNG-4223 provides tracking for this review.
  • MNG-4140 - Regression: Version-expression resolution for POMs in Maven 2.1.0 was too aggressive, replacing not only version expressions in artifact coordinates, but also in plugin configurations and POM properties. As mentioned above, version-expression resolution has been removed pending further review.

Complete list of issues fixed in 2.2.0

Sub-task
  • MNG-4144 - document escape character for curly braces in clear-text passwords for settings.xml password security
  • MNG-4145 - switch to released versions of plexus-sec-dispatcher (and by ext. plexus-cipher) once they're available
Bug
  • MNG-2258 - Wrong execution order of plugins in same phase
  • MNG-3401 - Plugin parameters must be specified outside an execution block when they are invoked from the command line
  • MNG-3553 - cannot resolve dependency with scope import
  • MNG-3776 - Namespace misspelled in settings.xml
  • MNG-4074 - cyclic reference with 2.1.0-RC1 that doesn't occur with 2.0.10
  • MNG-4082 - Encryption is triggered if passwords merely contain curly braces
  • MNG-4126 - regression Properties defined in profiles.xml of parent are not inherited during multimodule build
  • MNG-4137 - NPE in DefaultLIfecycleExecutor when run from within Hudson builds
  • MNG-4140 - Properties incorrectly replaced in pom
  • MNG-4146 - password security doesn't work with custom password providers
  • MNG-4147 - very long passwords cause LightweightHTTP wagon to line-wrap the Base64-encoded Authorization header
  • MNG-4165 - http session cookies rejected with non-lightweight http wagon (maybe with lightweight one too)
  • MNG-4166 - Problem parsing command-line options in release:perform
  • MNG-4167 - version-expression transformation interferes with plugins like GPG
  • MNG-4168 - String index out of range: 43807
  • MNG-4179 - regression Artifact download hangs upon transfer failure
  • MNG-4184 - regression maven2.1 fails with cyclic dependency in case of extension/dependency for report-plugin to reactor-project
  • MNG-4207 - Plugins that use ArtifactResolver with http repositories AND depend on log4j run into ExceptionInInitializerError
  • MNG-4213 - preemptive auth in non-lightweight http wagon causes Unauthorized responses from some servers
  • MNG-4219 - update plexus-utils to avoid leaking processes in CommandLineUtils.getSystemEnvars()
Improvement
  • MNG-2979 - Cross module dependencies for multi-module site
  • MNG-3203 - maven should execute compiler:compile and :test-compile in separate executions, to allow separate configuration
  • MNG-3834 - Improve error message when dependency with classifier is missing version
  • MNG-4210 - Remove log4j configuration warning
Task
  • MNG-4143 - Update Java requirement to 1.5
  • MNG-4169 - Remove invocation of maven-plugin-plugin:updatePluginRegistry from default lifecycle bindings
Wish
  • MNG-4139 - avoid the schema location in generated maven-metadata*.xml

2.1.0 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.

  • MNG-3600 - The <server> element in settings.xml no longer specifies a default value for file and directory modes on remotely deployed files. Please refer to the Settings guides for how to configure this appropriately for your deployment environment.
  • MNG-3475 - neither the script source directory nor the reporting output directory were aligned to the base directory. While this was a bug, if you used an expression such as ${basedir}/${project.reporting.outputDirectory} then where this would of worked in Maven 2.0.10, it will have two copies of the project base directory in Maven 2.1.0+. You should remove the leading ${basedir} from the expression - however note that in some cases this will cause the build to be incompatible with earlier versions of Maven.
  • MNG-3940 - While environment variables are case-insensitive on Windows, Maven internally stores them in a Properties collection. For the time being, the names of environment variables are normalized to all upper-case when Maven executes on Windows, thereby at least partly abstracting from different character casing of the original variable name. Hence, ${env.PATH} will now be reliably resolved on Windows. However, POMs that previously used lower-case or mixed-case variable names like ${env.ProgramFiles} will need to be updated.
  • MNG-4056 - Dependencies specified with a classifier of sources and type of jar are correctly considered source JARs and no longer added to the classpath. This is known to affect the GWT plugin

Noteworthy Changes and improvements

  • MNG-553 - Secure Storage of Server Passwords
  • MNG-3760 - ${project.baseUri} has been added as a valid expression in the POM, and is a valid URI equivalent of ${basedir}
  • MNG-2576 - Additional switches to the command line for alternate reactor behavior: --resume-from, --also-make, and --also-make-dependents.
  • MNG-3379 - Parallel resolution of dependencies now occurs, with the default number of concurrent of threads set to 5. A configuration option -Dmaven.artifact.threads can be used to change the number of threads.

Complete list of issues fixed in 2.1.0

Bug
  • [MNG-1349] - openssl checksums are not accepted by maven
  • [MNG-1585] - debug logging from wagon not shown in debug mode
  • [MNG-1992] - CLI -D should override properties in settings.xml
  • [MNG-1999] - Reporting inheritance does not work properly
  • [MNG-2432] - Apache and Mojo plugins take precendence over plugins in the pom.
  • [MNG-2433] - Maven looks for snapshots in offline mode
  • [MNG-2605] - Profiles in profiles.xml are active by default
  • [MNG-2668] - Plugin dependencies should be considered when the reactor creates the build order list
  • [MNG-2690] - DefaultPluginManager.getConfiguredMojo() doesn't handle NoClassDefFoundError correctly
  • [MNG-2695] - -o makes build fail for snapshot plugins
  • [MNG-2720] - Multiproject dependencies not accurate for project.compileClasspathElements when run from root project
  • [MNG-3023] - Reactor projects should be included in dependency resolution
  • [MNG-3057] - properties not expanded in generated POMs when building A/B/C nested projects
  • [MNG-3139] - The skin does not exist: Unable to determine the release version
  • [MNG-3217] - a plugin's dependencies can influence other plugins in a build
  • [MNG-3228] - Maven profile activation does not work when profile is defined in inherited 'parent' pom
  • [MNG-3271] - <excludeDefaults> does not seem to work
  • [MNG-3284] - Cached plugins are used, even when the specifically declared
  • [MNG-3314] - offline build not running, when having SNAPSHOT dependencies
  • [MNG-3621] - site url inheritance broken for UNC paths
  • [MNG-3628] - When running offline, snapshot artifcats cannot be resolved even if they have previously be dowloaded from a repository
  • [MNG-3641] - Lack of error checks on profiles
  • [MNG-3645] - Maven doesn't do strict model validation for POMs in the current reactor
  • [MNG-3719] - [regression] plugin execution ordering no longer POM ordered in 2.0.9
  • [MNG-3757] - Setting M2_HOME to nothing and running ant delets contents of the current folder
  • [MNG-3769] - [regression] Excluding relocated transitive dependencies does not work
  • [MNG-3776] - Namespace misspelled in settings.xml
  • [MNG-3808] - Execution order of report plugins is arbitrary if inheritance is involved
  • [MNG-3810] - [regression] Null Pointer Exception when Activation Profile Property is Empty
  • [MNG-3811] - Report plugins don't inherit configuration
  • [MNG-3899] - Inheritance does not merge extensions with same gid and aid
  • [MNG-3906] - Project-level plugin dependencies are in random order after merging
  • [MNG-3920] - Problem using velocity component
  • [MNG-3930] - mvn.bat doesn't handle ampersand in Windows user name properly
  • [MNG-3933] - Profiles.xml does not pickup OS family
  • [MNG-3940] - Interpolation of environment variables is not case-insensitive on Windows
  • [MNG-3948] - Remote repos defined by profiles outside of settings.xml are not used to resolve parent POMs
  • [MNG-3974] - New mirror syntax is not stopping on first match
  • [MNG-4016] - Properties with the prefix project/pom are not interpolated from the properties section
  • [MNG-4023] - Profiles from parent POM are injected multiple times if parent is part of reactor build
  • [MNG-4026] - [regression] Order of project class path does not match POM order during reactor build
  • [MNG-4032] - Test jar dependency not available for for main classes in multi module builds
  • [MNG-4043] - Resolve or rollback WebDAV wagon deployment issue where hostname is improperly extracted from URL
  • [MNG-4074] - cyclic reference with 2.1.0-RC1 that doesn't occur with 2.0.10
  • [MNG-4079] - Duplicate error messages
  • [MNG-4084] - Unnecessary Warning for an activate profile in child project
  • [MNG-4086] - [regression] Explicitly using plugin metaversions crashes plugin manager
  • [MNG-4087] - Percent encoded characters in file URLs are not decoded upon deployment
Improvement
  • [MNG-1830] - add a 'compiled on <timestamp>' label when maven 2 is invoked with --version option
  • [MNG-1957] - <jdk></jdk> clause in the activation section has to provide more complex expressions.
  • [MNG-3424] - Respect ordering of elements as given in POM
  • [MNG-3451] - Add german translation
  • [MNG-3503] - Shade MX* classes from plexus-utils
  • [MNG-3544] - Beautify debug output for mojo parameters of type array
  • [MNG-3600] - remove default settings of 664 / 775 for permissions
  • [MNG-3787] - Add plugin version to default reports
  • [MNG-3794] - Improve error logging when downloading depedencies
  • [MNG-3795] - Add example <pluginGroups> snippet to conf/settings.xml in distribution
  • [MNG-3867] - Support MAVEN_OPTS in mvnDebug script
  • [MNG-3951] - Hide drive-relative paths from plugins
  • [MNG-3971] - Provide parity in features between native ant-mojo support and antrun plugin
  • [MNG-3975] - getArtifact(Artifact artifact, List remoteRepositories) should include Exception in debug log messages.
  • [MNG-4024] - Open up CLIManager
  • [MNG-4037] - Include Java home in version information
  • [MNG-4057] - Propose checking of plugin artifact when plugin descriptor cannot be found
  • [MNG-4075] - Tone down warnings about reactor dependencies that don't have an associated file
  • [MNG-4091] - Validate the plugin descriptors and improve error reporting when mismatched with artifact
  • [MNG-4092] - remove plugin listeners for minor memory improvement and to avoid scanning descriptors from dependencies of plugins
New Feature
  • [MNG-553] - Secure Storage of Server Passwords
  • [MNG-2097] - adding a phase called prepare-package
  • [MNG-3379] - Parallel resolution of artifacts
  • [MNG-3760] - Support property ${baseurl} to get RFC-compliant URL of project base directory
  • [MNG-3914] - Add CLI option to control location of global settings from command line
Task
  • [MNG-2387] - active on proxy in settings is misleading
  • [MNG-2883] - Make sure that the network isn't used for snapshots in offline mode when legacy repositories are used
  • [MNG-3602] - Schedule and release Doxia-1.1
  • [MNG-3842] - Revert temporary changes to scp wagon handling
  • [MNG-3936] - Remove m2.bat from distribution
  • [MNG-4030] - Release maven-plugin-tools 2.4.4/2.5 to enable enhanced ant-mojo support
  • [MNG-4031] - Release plexus-ant-factory 1.0-alpha-2.1 to enable enhanced ant-mojo support
  • [MNG-4046] - Update to Doxia 1.0
  • [MNG-4077] - Review log level for VersionExpressionTransformation.transformVersions()
Wish
  • [MNG-4056] - Relax resolution of active project artifacts from the reactor with regard to artifact type

Complete list of issues fixed in 2.1.0-M1

Bug
  • [MNG-2739] - Repository entries are not validated and NPE will occur
  • [MNG-2873] - Unable to find transitive dependencies when they have been relocated.
  • [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-3368] - Printing version (-v argument) should not stop lifecycle execution
  • [MNG-3380] - MavenMetadataSource retrieves ResolutionGroup without consulting ManagedVersionMap, is problem when relocation
  • [MNG-3475] - Some directories are not basedir aligned
  • [MNG-3482] - merging managed dependencies happens before managed-dependency versions are interpolated
  • [MNG-3497] - rar, par and ejb3 archives should not be added to classpath
  • [MNG-3498] - StringIndexOutOfBounds -1 during path translation while reading pom.xml
  • [MNG-3527] - profile deactivation has no affect
  • [MNG-3535] - Valid properties which look self referential fail to resolve
  • [MNG-3536] - REGRESSION: pom.build.sourceDirectory in Maven 2.0.9: it doesn't work anymore
  • [MNG-3545] - Option -P-profile overridden if profile is activebyDefault
  • [MNG-3581] - stage:copy ClassCastException with maven 2.0.9
  • [MNG-3584] - possible new memory leak in Maven 2.0.9
  • [MNG-3585] - nonProxyHosts separator is wrong in the default settings.xml
  • [MNG-3599] - webdav does not set http-proxy correctly
  • [MNG-3622] - upgrade to wagon 1.0-beta-4
  • [MNG-3639] - Ant 1.7.0 Task not found after upgrading from Maven 2.0.8 to 2.0.9
  • [MNG-3642] - back-propagation of resources doesn't handle multiple resources with the same directory
  • [MNG-3651] - mvn.bat returns an incorrect error code
  • [MNG-3654] - [regression] unable to build ServiceMix 3 - IndexOutOfBoundsException in mergeDeterministicBuildElements
  • [MNG-3662] - Model interpolation crashes if property resolves to value with ampersand
  • [MNG-3667] - Dependencies resolution is wrong in some cases (xfire-core:1.2.6 for example)
  • [MNG-3671] - plugin-level dependencies in POMs are not interpolated at correct time
  • [MNG-3679] - <execution><id>${some.custom.var}</id> ... broke
  • [MNG-3680] - POM validation fails on projects in central repo starting with 2.0.10 RCs
  • [MNG-3684] - Injection of Build instance as report parameter results in uninterpolated values for build.directory, etc.
  • [MNG-3693] - Updating project POM via project.setFile(..) changes project basedir, and project classpath when used as a dependency in a reactor
  • [MNG-3694] - plugin parameters injecting ${project.compileSourceRoots} get uninterpolated source directories
  • [MNG-3697] - NPE at DefaultPluginManager line 700 (from Hudson CI)
  • [MNG-3701] - ClassCastException when building settings.xml with profiles that have activeByDefault set
  • [MNG-3703] - ExecutionProject contains relative paths in compileSourceRoots
  • [MNG-3704] - NPE in DefaultLIfecycleExecutor when run from within Hudson builds
  • [MNG-3705] - Expression: ${executedProject} doesn't work in reports
  • [MNG-3710] - ModelUtils.cloneModel() and .cloneBuild() pollute existing Plugin instances with merged information
  • [MNG-3716] - Aggregators that fork lifecycles don't have execution projects setup for all projects in the reactor.
  • [MNG-3717] - Maven prompts for a password when one is provided over SSH in some circumstances
  • [MNG-3718] - Build timestamp interpolator gives hours in AM/PM instead of 24-hour time
  • [MNG-3722] - Fail to run CXF code generation with 2.0.10 RC
  • [MNG-3723] - ${project.basedir} is not interpolated
  • [MNG-3724] - ExecutionProject not getting updated compile/test-compile/script roots in RC10
  • [MNG-3729] - Maven 2.0.10-RC10 fails with NPE on assembly:assembly
  • [MNG-3740] - Plugin builds that reference earlier versions of themselves in the <plugins> section of the POM result in StackOverflowError in 2.1.0-M1-RC12
  • [MNG-3741] - CLONE maven-plugin-tools-api requires relative script root paths
  • [MNG-3743] - pluginManagement not consulted when building from lifecycle forked via javdoc reports
  • [MNG-3746] - POM properties do not override default system properties during POM interpolation
  • [MNG-3747] - relative build paths are not path-translated when using prefixed expressions (eg. project.build.directory) in plugin configurations
  • [MNG-3748] - settings builder doesn't use strict mode in xml parser
  • [MNG-3885] - Modules of Maven projects are deployed with Timestamp during reactor build when uniqueVersion is set to false in parent profile
  • [MNG-3924] - FATAL ERROR if a variable contains &lt; or &gt;
Improvement
  • [MNG-2609] - Mention 'activeByDefault' in the "Introduction to Build Profiles" guide
  • [MNG-3268] - Command line doesn't handle multiple -P correctly
  • [MNG-3478] - Use expression ${project.build.directory} instead of hard-coding "target" in super POM
  • [MNG-3509] - Make "mvn -v" output locale/encoding
  • [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-3673] - Upgrade plugin versions in super-POM where appropriate
  • [MNG-3698] - Improve performance regarding concrete/dynamic build transitions surrounding plugin executions and report instantiations
  • [MNG-3709] - Be sure source distro has the same name as the binary distro in the repository.
New Feature
  • [MNG-2562] - expose current time as a property for POM interpolation
  • [MNG-2576] - Make Like Reactor Mode
  • [MNG-3219] - Create a CLIRR/JarDiff setup for 2.0.x and 3.0.x
  • [MNG-3675] - Add accessor for lifecycles list to LifecycleExecutor/DefaultLifecycleExecutor

Maven 2.0.11 Release Notes

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

Plugin Versions defined in the Maven 2.0.11 super POM:

See the raw super POM for Maven 2.0.11 here.

Default Plugin Versions (Bold indicates a change from 2.0.10)
Antrun1.3
Assembly2.2-beta-2
Clean2.2
Compiler-plugin2.0.2
Dependency2.0
Deploy2.4
Ear2.3.1
Ejb2.1
Install2.2
Jar2.2
Javadoc2.5
Plugin2.4.3
Rar2.2
Release2.0-beta-8
Resources2.3
Site2.0-beta-7
Source2.0.4
Surefire2.4.3
War2.1-alpha-2

Complete list of issues fixed in Maven 2.0.11

Bug

  • [MNG-1349] - openssl checksums are not accepted by maven
  • [MNG-2605] - Profiles in profiles.xml are active by default
  • [MNG-3139] - The skin does not exist: Unable to determine the release version
  • [MNG-3553] - cannot resolve dependency with scope import
  • [MNG-3621] - site url inheritance broken for UNC paths
  • [MNG-3641] - Lack of error checks on profiles
  • [MNG-3701] - ClassCastException when building settings.xml with profiles that have activeByDefault set
  • [MNG-3719] - [regression] plugin execution ordering no longer POM ordered in 2.0.9
  • [MNG-3757] - Setting M2_HOME to nothing and running ant delets contents of the current folder
  • [MNG-3776] - Namespace misspelled in settings.xml
  • [MNG-3808] - Execution order of report plugins is arbitrary if inheritance is involved
  • [MNG-3810] - [regression] Null Pointer Exception when Activation Profile Property is Empty
  • [MNG-3811] - Report plugins don't inherit configuration
  • [MNG-3885] - Modules of Maven projects are deployed with Timestamp during reactor build when uniqueVersion is set to false in parent profile
  • [MNG-3899] - Inheritance does not merge extensions with same gid and aid
  • [MNG-3906] - Project-level plugin dependencies are in random order after merging
  • [MNG-3920] - Problem using velocity component
  • [MNG-3930] - mvn.bat doesn't handle ampersand in Windows user name properly
  • [MNG-3933] - Profiles.xml does not pickup OS family
  • [MNG-3940] - Interpolation of environment variables is not case-insensitive on Windows
  • [MNG-3948] - Remote repos defined by profiles outside of settings.xml are not used to resolve parent POMs
  • [MNG-4023] - Profiles from parent POM are injected multiple times if parent is part of reactor build
  • [MNG-4084] - Unnecessary Warning for an activate profile in child project

Improvement

  • [MNG-1830] - add a 'compiled on <timestamp>' label when maven 2 is invoked with --version option
  • [MNG-3451] - Add german translation
  • [MNG-3509] - Make "mvn -v" output locale/encoding
  • [MNG-3544] - Beautify debug output for mojo parameters of type array
  • [MNG-3787] - Add plugin version to default reports
  • [MNG-3794] - Improve error logging when downloading depedencies
  • [MNG-3795] - Add example <pluginGroups> snippet to conf/settings.xml in distribution
  • [MNG-3834] - Improve error message when dependency with classifier is missing version
  • [MNG-3867] - Support MAVEN_OPTS in mvnDebug script
  • [MNG-3951] - Hide drive-relative paths from plugins
  • [MNG-4037] - Include Java home in version information
  • [MNG-4057] - Propose checking of plugin artifact when plugin descriptor cannot be found

Task

  • [MNG-2387] - <active> on <proxy> in settings is misleading
  • [MNG-4046] - Update to Doxia 1.0 * 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)
Antrun1.3
Assembly2.2-beta-2
Clean2.2
Compiler-plugin2.0.2
Dependency2.0
Deploy2.4
Ear2.3.1
Ejb2.1
Install2.2
Jar2.2
Javadoc2.5
Plugin2.4.3
Rar2.2
Release2.0-beta-8
Resources2.3
Site2.0-beta-7
Source2.0.4
Surefire2.4.3
War2.1-alpha-2

Complete list of issues fixed in 2.0.10

Bug

  • [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] - G:\apache\maven\trunks\site 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

Improvement

  • [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

Task

  • [MNG-2883] - Make sure that the network isn't used for snapshots in offline mode when legacy repositories are used * 2.0.9 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-3395 - Starting in 2.0.9, we have provided defaults in the super pom for the plugins bound by default to the lifecycle and a few other often used plugins. This will introduce a bit of stability to your builds because core plugins will not change magically on you when they are released. We still recommend taking control of your plugin versions via pluginManagement declarations as this is the most robust way to future proof your builds. Defaulting the plugins in the superpom was a step towards introducing stability for small builds and new users. A full table of the versions used is shown in the next section.
  • MNG-1412 / MNG-3111 introduced deterministic ordering of dependencies on the classpath. In the past, natural set ordering was used and this lead to odd results. The ordering is now preserved from your pom, with dependencies added by inheritence added last. In builds that had conflicting or duplicate dependencies, this may introduce a change to the output. In short, if you have weird issues with 2.0.9, take a look at the dependencies to see if you have conflicts somewhere.

Noteworthy Changes and improvements

  • MNG-2234 - In the past, settings.xml was ignored if there was no pom present (like in archetype:generate). Now all settings will be interpreted correctly.
  • MNG-2664 - The webdav wagon is now included in the core bundle by default. This means deploying 3rd party jars without a pom is a bit easier. The version of the wagon may still be overriden with an extension declaration within your pom.
  • MNG-2972 The plugin.dependency section can now override the dependencies specified by a plugin itself. This is useful for example to upgrade the version of checkstyle used by the checkstyle plugin (and many more).
  • MNG-3286 - The inherited field in a plugin execution block is now functioning correctly. Previously you could only dis-inherit an entire plugin configuration.
  • MNG-3220 - There is now a new scope for importing managed dependencies. See here and here for details. Please note that the use of this scope will break backwards compatibility with older Maven versions. If you use this, you should use the maven-enforcer-plugin to require a minimum maven version of 2.0.9
  • MNG-3394 - plugin versions specified in pluginManagement are now properly overriden by build.plugin.version specification.
  • MNG-3415 - Transmission errors when downloading artifacts should not corrupt the local repository metadata. Hopefully this means the end of "delete your local repo" as a debug step.
  • MNG-3461 - There is a new, more flexible way to define mirror settings. See the settings specification for more information.

Plugin Versions defined in the 2.0.9 super pom:

See the raw super pom for 2.0.9 here.

Default Plugin Versions
Antrun1.1
Assembly2.2-beta-2
Clean2.2
Compiler-plugin2.0.2
Dependency2.0
Deploy2.3
Ear2.3.1
Ejb2.1
Install2.2
Jar2.2
Javadoc2.4
Plugin2.4.1
Rar2.2
Release2.0-beta-7
Resources2.2
Site2.0-beta-6
Source2.0.4
Surefire2.4.2
War2.1-alpha-1

Complete list of issues fixed in 2.0.9

Bug

  • [MNG-1412] - dependency sorting in classpath
  • [MNG-1914] - Wrong url in error message when using a mirror
  • [MNG-2123] - NullPointerException when a dependency uses version range and another uses an actual version incompatible with that range
  • [MNG-2145] - Plugins' dependencies are not always checked
  • [MNG-2178] - incorrect M2_HOME guess in mvn.bat
  • [MNG-2234] - activeProfile in ~/.m2/settings.xml is ignored when profiles section is missing or empty
  • [MNG-2339] - ${project.*} are interpreted in the wrong place
  • [MNG-2744] - checksum comparison should be case-insensitive
  • [MNG-2809] - Can't activate a profile by checking for the presence of a file in $user.home
  • [MNG-2848] - Environment variables in profile activation not working
  • [MNG-2861] - NullPointerException in DefaultArtifactCollector for relocated resolvedArtifacts with different version ranges and available versions.
  • [MNG-2925] - NullPointerException in PluginDescriptor.getMojo() if there's no mojo in pom.xml
  • [MNG-2928] - Null pointer exeception when introducing version range [major.minor.build-SNAPSHOT,)
  • [MNG-2972] - Ignores version of plugin dependency specified in my pom
  • [MNG-3086] - NullPointerException in ResolutionNode.getTrail(ResolutionNode.java:136)
  • [MNG-3099] - Profiles ignored when working with non-projects (such as archetype:create)
  • [MNG-3111] - Classpath order incorrect
  • [MNG-3156] - NullPointerException with mvn dependency:sources
  • [MNG-3221] - Infinite loop in DefaultLifecycleExecutor
  • [MNG-3259] - Regression: Maven drops dependencies in multi-module build
  • [MNG-3286] - execution.inherited field is ignored
  • [MNG-3288] - Invalid systemPath allows build to continue--failing in later phase.
  • [MNG-3296] - mvn.bat looses error code on windows NT type platforms
  • [MNG-3310] - JAVACMD set incorrectly when JAVA_HOME is not set
  • [MNG-3316] - Barfs at attribues named .*encoding
  • [MNG-3354] - mvn.bat incorrectly detects OS on Windows NT or XP with Novell login
  • [MNG-3355] - CLONE -$pom.build.sourceDirectory and $pom.build.testSourceDirectory no longer recognized
  • [MNG-3365] - Remove trailing-backslashes from M2_HOME in mvn.bat
  • [MNG-3394] - Plugin versions inherited via pluginManagement cannot be overriden by build.plugins sect ion of sub modules
  • [MNG-3396] - Managed versions dont affect over constrained ranges
  • [MNG-3400] - MavenProject is not extensible
  • [MNG-3405] - "Checking for updates from repository" logging should not display if WagonManager is offline
  • [MNG-3410] - Managed versions in plugins are not considered when using them
  • [MNG-3415] - Transfer errors cause junk metadata in the local repo
  • [MNG-3426] - regression : dependency in plugin configuration doesn't override plugin classpath
  • [MNG-3430] - Toolchain doesn't match Toolchain extensions
  • [MNG-3431] - Pom Extensions not supported for Toolchains
  • [MNG-3439] - incorrect child dependency selected when parent is not selected
  • [MNG-3441] - Maven should always retrieve metadata to be updated from the deployment repository
  • [MNG-3460] - org.apache.maven.profiles.DefaultProfileManagerTest fails if you use a different local repo
  • [MNG-3464] - maven-toolchains missing from final binary.. need to update the assembly
  • [MNG-3473] - site generation with 2.0.9 and plugin:report (2.4 ONLY) is broken
  • [MNG-3484] - INT_MAVEN_OPTS are not quoted in mvnDebug which causes issues on some shells
  • [MNG-3485] - unable to override wagons that are bundled with a different version via extensions
  • [MNG-3494] - local pom dependencies should get injected before inherited dependencies
  • [MNG-3495] - NPE at org.apache.maven.wagon.repository.Repository.hashCode(Repository.java:241)

Improvement

  • [MNG-428] - Japanese message resource
  • [MNG-2881] - Improve logging when downloading snapshots in offline mode
  • [MNG-3279] - Support Exception Chaining for MojoFailureException
  • [MNG-3318] - ActiveProjectArtifact should have appropriate equals and hashCode methods
  • [MNG-3331] - Normalize paths to sub modules
  • [MNG-3388] - DefaultPluginManager needs to catch LinkageError
  • [MNG-3395] - Default core plugin versions in the superpom.
  • [MNG-3442] - Add explicit resource bundle for English
  • [MNG-3461] - Enhance Mirror definition syntax
  • [MNG-3467] - PatternSet needs a toString() method to properly print in debug mode
  • [MNG-3468] - FileSet needs a toString() method to properly print in debug mode
  • [MNG-3469] - Resource needs a toString() method to properly print in debug mode

New Feature

  • [MNG-2664] - Add native support for webdav
  • [MNG-3220] - Allow managed dependencies to be imported into other projects

Task

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

Wish

  • [MNG-1491] - Reactor should print out a message if it detects a collision of artifact ids

2.0.8 Release Notes

Release Notes - Maven 2 - Version 2.0.8

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

Changes that may affect existing builds

  • MNG-3118 - Test-classes should come before classes in the classpath. This may slightly alter behavior of tests. The test-classes directory is now included first in the classpath to allow test resources to override normal runtime ones.

Bug

  • [MNG-2025] - POM is still not read using the right encoding
  • [MNG-2045] - Maven can't compile against sibling test-jar dependency in multiproject (Test Attached)
  • [MNG-2061] - DistributionManagement properties don't get copied in cloned executionProject while lifecycle fork
  • [MNG-2254] - the encoding parameter in xml declaration of POM is ignored
  • [MNG-2277] - aggregating plugins in submodules of the reactor return all projects causing a chicken/egg issue
  • [MNG-2593] - Maven 2 stumbels upon non ASCII characters in the value of a localRepository value in the $HOME/.m2/settings.xml
  • [MNG-2685] - mvn.bat detection of 4NT syntax error
  • [MNG-2932] - Encoding chaos
  • [MNG-2961] - DefaultArtifact getBaseVersion is changed to "xxxx-SNAPSHOT" only if you first call isSnapshot()
  • [MNG-3046] - DefaultArtifactVersion compareTo misbehaves regarding buildNumber 0
  • [MNG-3077] - NullPointerException, if MojoExecutionException has no message
  • [MNG-3084] - mvn.bat in maven 2.0.7 does not return the correct error code.
  • [MNG-3095] - maven-plugin-testing-tools causes bad version in deployed artifacts after tests are run
  • [MNG-3134] - DefaultModelInheritence::assembleDistributionInheritence should be childPathAdjustment aware
  • [MNG-3141] - Build not working if pom.xml is a symbolic link
  • [MNG-3215] - Missing rar artifact handler descriptor
  • [MNG-3240] - maven-model RepositoryBase.equals() causes ClassCastException
  • [MNG-3245] - Maven Reporting API is binary incompatible in 2.0.8-SNAPSHOT by r579987
  • [MNG-3254] - artifactId is not appended any more in distributionManagement.site.url in multi modules when it's not defined in a child
  • [MNG-3298] - invoker MavenCommandLineBuilder#checkRequiredState() should not throw Exception if envvar M2_HOME exists

Improvement

  • [MNG-2188] - Report mojos should check canGenerateReport() when called directly
  • [MNG-2290] - Generated URLs in POMs of child modules
  • [MNG-3024] - Missing artifact error text improvement
  • [MNG-3047] - DefaultArtifactVersion compareTo inconsistent with equals
  • [MNG-3062] - Allow access to mojoExecution from within plugin.
  • [MNG-3118] - Test-classes should come before classes in the classpath
  • [MNG-3152] - Change to plugin testing harness to allow the setting of ArtifactRepository on the ArtifactStub
  • [MNG-3201] - org.apache.maven.project.MavenProject needs a toString()

New Feature

  • [MNG-2105] - Enable remote debugging command line option (+ docs)
  • [MNG-2166] - Provide the help listing as default when no arguments are provided

Task

  • [MNG-3088] - update the assembly name

Wish

  • [MNG-3207] - Order of repositories for download should be inverted if Archiva is used.

2.0.7 Release Notes

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

Bug

  • [MNG-2247] - Release-Dates of maven releases not documented on website?
  • [MNG-2267] - Introduction to Repositories contains incorrect information
  • [MNG-2289] - Newer SNAPSHOT parents in the remote repository are ignored
  • [MNG-2432] - Apache and Mojo plugins take precendence over plugins in the pom.
  • [MNG-2689] - typeejb-client/type dependency not working properly as reactor build
  • [MNG-2696] - maven-cli assembly exceptions when using maven to build
  • [MNG-2784] - Multiple executions of the same plugin at the same life cycle phase in a multi-module profile mixed up
  • [MNG-2831] - Cannot add custom artifact handler and custom lifecycle as a build extension
  • [MNG-2860] - Empty module/module entry causes OutOfMemoryError
  • [MNG-2880] - error message for artifacts with classifiers doesn't instruct user to install with classier
  • [MNG-2905] - JIRA URL is wrong on the site
  • [MNG-2919] - Scope defined in dependencyManagement section of parent pom overwrites scope of current artifact
  • [MNG-2921] - ejb-client dependency no longer working
  • [MNG-2923] - Having any active profiles causes the build to fail
  • [MNG-2926] - group search order for plugins is inverted
  • [MNG-2934] - Cannot Deploy Using Webdav due to DependencyManagement
  • [MNG-2939] - ${basedir} isn't well interpolated in properties files
  • [MNG-2942] - Typo in Maven introduction
  • [MNG-2981] - [PATCH] NPE in PluginXDocGenerator while creating plugin site
  • [MNG-2988] - Ranges with inclusive upper bounds are not validated against metadata
  • [MNG-2998] - maven-plugin-testing-harness: all collections in MavenProjectStub should return empty collections
  • [MNG-3039] - mvn.bat fails
  • [MNG-3055] - [regression] loader constraint problems with XmlSerializer if attaching site descriptorImprovement

Improvement

  • [MNG-980] - Provide control over precedence of org.apache.maven.plugins group in search path
  • [MNG-2376] - Have Java code output Java version, not the shell script
  • [MNG-2582] - -X (debug) does not display JVM version
  • [MNG-2885] - improve os activation documentation
  • [MNG-2904] - Misleading error message if profiles that are active by default do not have an ID
  • [MNG-2965] - Update svn:ignores for developing with eclipse
  • [MNG-3024] - Missing artifact error text improvementNew Feature

New Feature

  • [MNG-2169] - Want to contribute: Contributing Maven 2 refcard

2.0.6 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

  • MNG-1577 - Maven will now only obey the <dependencyManagement> element in the POM and will align all transitive dependencies to versions specified in the <dependencyManagement>. To detect any problems that you might have you can refer to these upgrade notes for Maven 2.0.6 to prepare for the upgrade.

Bug

  • [MNG-1577] - dependencyManagement does not work for transitive dependencies
  • [MNG-2339] - ${project.*} are interpreted in the wrong place
  • [MNG-2362] - Deployed POM is not valid XML
  • [MNG-2433] - Maven looks for snapshots in offline mode
  • [MNG-2648] - Repeated message "[WARNING] Unable to get resource from repository ... "
  • [MNG-2760] - Fix deployment so that assemblies are signed with the GPG plugin
  • [MNG-2793] - Snapshot plugins cannot be resolved correctly with java6
  • [MNG-2812] - Profile with an undefined os family activation should not activate
  • [MNG-2843] - Plugins can't get project properties
  • [MNG-2867] - Guide building maven not up to date
  • [MNG-2877] - unable to resolve attached artifacts from reactor that are not in repo. (patch applied in svn and IT tests added)
  • [MNG-2891] - Fix deployment permissions so by default group write works
  • [MNG-2897] - Make sure that Xpp3Dom is shared from the core to plugins
  • [MNG-2899] - In cases where ${version} is used in depMan we get null versions in attached artifacts
  • [MNG-2900] - Extensions that have no declared dependency on plexus-utils yet need it at runtime will fail.

Improvement

  • [MNG-2252] - Upgrade to plexus-utils 1.3
  • [MNG-2823] - More control over what WARNING messages are displayed
  • [MNG-2828] - Upgrade the dependency on plexus-utils to a more recent version
  • [MNG-2892] - Use shade to hide the use of plexus-utils internally so that plugins can use their own version

Task

  • [MNG-2776] - Upgrade the dependency on modello-maven-plugin to a more recent version
  • [MNG-2894] - Make sure that if a plugin does not specify the use of plexus-utils that once is fed in to protect against plugins that use plexus-utils but don't declare it.
  • [MNG-2898] - Look at allowing all org.codehaus.plexus.util.xml to show through

2.0.5 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

  • MNG-2794 - Maven now behaves in a defined way when matching the nearest dependency when two exist at the same depth in the dependency graph, by matching the first encountered. Previously, it was undefined. This may result in some builds having a different dependency graph, which could cause failures if all compilation dependencies are not specified completely in the POM. While not currently enforced, projects should always list the dependencies it needs to compile, even if they are available transitively.
  • MNG-2228 - The handling of build extensions has changed. This technique causes less pollution to the global classloader, allowing them to be used more widely for extensions to Maven's core. This may affect builds that used them to expose extra classes to various plugins. While in most scenarios these builds will continue to work, in these situations the <dependencies> element of <plugin> should be used instead.

Bug

  • [MNG-967] - maven.mdo, settings.mdo, and generated-sources
  • [MNG-1181] - MavenEmbedder.execute() doesn't run reactor modules
  • [MNG-1245] - Reactor projects sometimes used even with version mismatch
  • [MNG-1281] - Most of the links off the m2 ant task documentation page are broken
  • [MNG-1290] - What is a Mojo?
  • [MNG-1379] - Wrong path for artifacts with system scope
  • [MNG-1458] - error/warning handling in embedder
  • [MNG-1545] - some execution output not routed through default routes.
  • [MNG-1562] - Exception with dependencies that have type and implied version from parents
  • [MNG-1593] - Typo in settings doc
  • [MNG-1645] - document clean and site lifecycles in the build lifecycle doc
  • [MNG-1697] - NPE in addEdgeWithParentCheck
  • [MNG-1797] - Dependency excludes apply to every subsequent dependency, not just the one it is declared under.
  • [MNG-1891] - plugin execution in a profile
  • [MNG-1955] - null pointer exception in profile if pluginManagement section exists in pom
  • [MNG-2056] - Exception when starting new page with AbstractMavenMultiPageReport
  • [MNG-2088] - antcall failed
  • [MNG-2106] - Add dependency-maven-plugin to plugins list (patch attached)
  • [MNG-2164] - Generated plugin documentation lists wrong data type
  • [MNG-2177] - moved mojo plugins are missing web pages at http://maven.apache.org/plugins
  • [MNG-2201] - Interpolation problem when using surefire
  • [MNG-2214] - ITs fail when bootstrapping M2 SVN trunk with java.lang.StringIndexOutOfBoundsException: String index out of range: 1
  • [MNG-2221] - Multiple Executions of Plugin at Difference Inhertiance levels causes plugin executions to run multiple times
  • [MNG-2228] - Classloader problem loading jars from build extensions
  • [MNG-2230] - The "How do I create documentation?" part of the "Maven Gettting Started Guide" features an invalid example
  • [MNG-2236] - DefaultMavenProjectBuilder.buildStandaloneSuperProject() should include a ProfileManager that includes active profiles from settings.xml
  • [MNG-2244] - Plugin xdoc generator outputs xdoc with unix file endings
  • [MNG-2256] - Misleading documentation regarding configuration of java.utils.Properties
  • [MNG-2261] - Profiles ignored when working with non-projects (such as archetype:create)
  • [MNG-2282] - If a repo is down, maven stops the buid instead of trying other repos
  • [MNG-2284] - Cannot specify additional classpath entries in manifest when using addClasspath
  • [MNG-2291] - svn ignore command incorrect
  • [MNG-2299] - org.apache.maven.it.Verifier.loadProperties(..) does not close FileInputStream (relies upon finalizer being called)
  • [MNG-2302] - SCM path calculations don't work when parent and grandparent are in sibling directories
  • [MNG-2303] - ActiveProjectArtifact.getFile(..) and .setFile(..) result in StackOverflowException, since they are effectively recursive
  • [MNG-2309] - Profile activation order is random
  • [MNG-2312] - The mvn script doesn't work on Solaris
  • [MNG-2314] - dependencyManagement not inherited more than one level
  • [MNG-2341] - Shell script mvn too old
  • [MNG-2407] - New user docs: proxy configuration is not clear to new users
  • [MNG-2408] - Improve handling of "no plugin version found" error after intermittent errors
  • [MNG-2413] - maven version insistence based on wrong variable
  • [MNG-2420] - exclusion on dependency seems to act global on POM
  • [MNG-2424] - Classpath in reactor builds differ from dependency resolution
  • [MNG-2425] - Mojo parameters with no "expression" does not get added to the parameter list
  • [MNG-2460] - Incorrect POM inheritance for plugins
  • [MNG-2462] - Using Maven 1.x Legacy Repository Layout in a Maven 2.0.4 Project, I can't depend on a "java-sources" jar
  • [MNG-2475] - Need to finish escaping html in http://maven.apache.org/general.html#Compiling-J2SE-5
  • [MNG-2493] - Snapshot plugin repositories should be included for reference at the Maven site
  • [MNG-2539] - Transitive dependencies referenced by a plugin are searched only in the plugin-repositories
  • [MNG-2612] - antrun's exec task breaks in 2.0.5-SNAPSHOT
  • [MNG-2709] - Maven 2 doesn't resolve parent test dependencies when using JDK 6
  • [MNG-2712] - update policy 'daily' not honored
  • [MNG-2746] - NPE in DefaultMavenProjectBuilder when parentPath is a directory and pom is not found.
  • [MNG-2749] - extensions stopped working in 2.0.5-SNAPSHOT
  • [MNG-2773] - Plugin repositories are chekced for SNAPSHOTS on every run in the 2.0.5 candidate
  • [MNG-2780] - snapshots are not updated based on metadata deployed with uniqueVersion = false
  • [MNG-2790] - lastUpdated timestamp in local repository metadata not updated on install if it already exists
  • [MNG-2794] - Transitive dependency resolution differs between 2.0.4 and (future) 2.0.5
  • [MNG-2795] - Classloader problem loading a resource from a build extension Jar : difference between 2.0.4 and (future) 2.0.5
  • [MNG-2801] - broken link in basic documentation
  • [MNG-2820] - Deployment is stripping out the license header from the POM

Improvement

  • [MNG-830] - review plugins use of expression and change to default-value/component where appropriate
  • [MNG-1299] - Document m1 xdocs compatibility with the m2 site plug-in
  • [MNG-1508] - Need a process-test-classes phase
  • [MNG-1540] - ability to categorise guides in the maven site
  • [MNG-1560] - Guide to accessing repository with https client authentication
  • [MNG-1929] - Plugin Goal report should indicate which fields are read only. (Patch Attached)
  • [MNG-1952] - Give equal footing to all m2 plugins and add Cargo plugin to the list
  • [MNG-1997] - document xsd support for pom and settings in guides
  • [MNG-2129] - generated source repo page is misleading when added to the "general site".
  • [MNG-2153] - Updated resource bundles for pl and en locales
  • [MNG-2213] - Current settings.xml example incorrect
  • [MNG-2246] - mojo developer guide takes a shortcut at explaining fully how the command line can be shortened
  • [MNG-2250] - fix misspelled and added missing words in getting started guide and philosphy of maven
  • [MNG-2251] - Upgrade to plexus-utils 1.2
  • [MNG-2306] - mojo javadoc annotations support for IntelliJ Idea
  • [MNG-2311] - site plugin i18n HU
  • [MNG-2324] - Add a getWagon(Repository) method to the WagonManager
  • [MNG-2346] - FAQ: Why does maven compile my test classes but does not run them?
  • [MNG-2355] - Documentation of the @component javadoc tag
  • [MNG-2357] - misc cleanup
  • [MNG-2375] - Generate docs for mojo goals should list whehter or not each parameter is read-only
  • [MNG-2379] - review and link to free Maven courseware
  • [MNG-2474] - missing jar files in javax repository
  • [MNG-2494] - Plugin development guide should have link to test harness plugin
  • [MNG-2638] - Please add Developpez.com Maven FAQ to articles (french)

New Feature

  • [MNG-2169] - Want to contribute: Contributing Maven 2 refcard
  • [MNG-2293] - maven-plugin-descriptor: Not possible to define a default implementation for a field defined by its interface
  • [MNG-2454] - add @since to mojo at class level

Task

  • [MNG-1059] - update mojo API documentation
  • [MNG-1069] - Verify the embedder is using the same strategy for locating the local repo as the CLI
  • [MNG-1213] - more info on the plugin summary
  • [MNG-1325] - Document ibiblio synchronization process
  • [MNG-2117] - Update doap file descriptor
  • [MNG-2300] - broken links on http://maven.apache.org/plugins/
  • [MNG-2393] - documentation of -U on CLI usage help is incorrect

Wish

  • [MNG-1731] - I18n issues with report generation
  • [MNG-1880] - Add new pre and post phases to the integration-test phase
  • [MNG-2361] - Document pomRefId attribute for M2 ant tasks on M2 website.

2.0.4 Release Notes

Bug

  • MNG-2054 - Multiple Inheritence causes plugin executions to run multiple times (Test Case Attached)
  • MNG-2186 - POM interpolation problem in maven-2.0.3
  • MNG-2196 - Fails when parent module is not located a level above
  • MNG-2207 - Infinite Recursion when POM element has value with substring that is self-referencing

Task

  • MNG-1123 - publish m2 component javadoc and reports

2.0.3 Release Notes

Bug

  • MNG-1317 - m2.bat doesn't work on Windows 2000
  • MNG-1318 - mvn.bat sets incorrect value to M2_HOME [Windows 2000]
  • MNG-1337 - Interpolation of POM values needs to be improved
  • MNG-1415 - quoted arguments are not being protected
  • MNG-1509 - Profile activation by os doesn't work
  • MNG-1703 - pluginManagementdependencies is not propagated to child POMs
  • MNG-1837 - deploy-file succeeds even when local file not found
  • MNG-1856 - legacy layout tag in a profile does not show up in child pom.
  • MNG-1882 - activeByDefault is ignored in pom.xml
  • MNG-1895 - Dependencies in two paths are not added to resolution when scope needs to be updated in the nearest due to any of nearest parents
  • MNG-1898 - Plugin classpath broken from 2.0 to 2.0.1
  • MNG-1980 - "Duplicate project ID found" message with maven-artifact-ant-2.0.2
  • MNG-1999 - Reporting inheritance does not work properly
  • MNG-2002 - The mvn.bat Script does not return the error-code of Maven
  • MNG-2006 - Module SCM URL is resolved as [...]/parent/module regardless of relativePath
  • MNG-2037 - Strange NPE with profile and injectPlugins
  • MNG-2052 - Transitive system deps are not interpolated correctly thus rendering them invalid
  • MNG-2068 - Multiple inheritance fails to find "grand" parent in ../../pom.xml when the groupIds differ (Test Case Attached)
  • MNG-2078 - Fixup super pom to activate the profile only when -DperformRelease=true.
  • MNG-2083 - Path to missing dependency is not shown nor url to download
  • MNG-2087 - NPE in PluginXdocGenerator
  • MNG-2124 - Incorrect resolution of parent POM properties
  • MNG-2130 - Parent POM not created by reactor if not found in repository
  • MNG-2136 - Active profile in profiles.xml prevents active profile in pom.xml to be triggered automatically

Improvement

  • MNG-1644 - parent pom = child pom results in stack overflow error
  • MNG-2030 - Make -X show maven version as first thing
  • MNG-2096 - allow configuration with execution in a lifecycle overlay, like a plugin allows

Task

  • MNG-2003 - release and update to wagon-file 1.0-alpha-7
  • MNG-2095 - Add "plugin-metadata-1.0.0.xsd" to http://maven.apache.org/xsd

Wish

  • MNG-547 - being able to set the head of a page to wathever we want

2.0.2 Release Notes

Bug

  • MNG-1419 - resolve outstanding wagon issues
  • MNG-1744 - Doxia move from org.codehaus to org.apache breaks Reporting API Contract.
  • MNG-1819 - StringIndexOutOfBoundsException when running maven
  • MNG-1850 - Error: Duplicate project ID found in pom
  • MNG-1851 - "Duplicate project ID found" message with maven-artifact-ant-2.0.1
  • MNG-1900 - Error while deploying when using scpexe protocol with non-default scp/ssh executables
  • MNG-1923 - please add reference to netbeans maven2 integration from the the maven2 site
  • MNG-1927 - G:\apache\maven\trunks\site\target different in M2.0 & M2.0.1
  • MNG-1933 - When using artifacts with full stops in the artifact id the are not loaded correctly when transitively referenced another project.
  • MNG-1934 - cannot deploy with embedder

Improvement

  • MNG-1689 - Only print relocation warnings in standard output for the current pom
  • MNG-1903 - Make site descriptor attachment default behaviour
  • MNG-1907 - Bundle wagon-ssh-external with maven dist

Task

  • MNG-1932 - Document how to write an ant based mojo

Bug

  • MNG-948 - Broken Links on Maven2 Website
  • MNG-1205 - dependency with scope:system & flag optional = true doesn't appear in the class path
  • MNG-1220 - NPE in DiagnosisUtils
  • MNG-1232 - Incorrect field case triggers NPE when configurator unable to configure object
  • MNG-1241 - configuration collections are not merged when configuration is
  • MNG-1244 - bin/m2 breaks with spaces in path
  • MNG-1246 - target/test-classes isn't added to [G:\apache\maven\trunks\site\target\test-classes, G:\apache\maven\trunks\site\target\classes] variable
  • MNG-1249 - External Javadoc report apidocs/index.html is overwritten
  • MNG-1251 - attachArtifact doesn't allow to attach an artifact with different type and no assembly
  • MNG-1291 - Incorrect usage information
  • MNG-1311 - Cannot be executed in package phase (infinite loop when @execute is specified)
  • MNG-1320 - Build failed due to an empty or corrupt metadata file in the repository
  • MNG-1335 - Artifact must be cloned too in MavenProject's constructor
  • MNG-1355 - Infinity Loop in DefaultMavenProjectBuilder.assembleLineage
  • MNG-1357 - An attempt at running the tests is performed even if the testClassesDirectory is not present
  • MNG-1363 - Transitive dependencies with system scope and version range trying to be downloaded
  • MNG-1372 - Reference to deprecated command in message
  • MNG-1384 - optional dependencies not resolved while compiling from a master project
  • MNG-1394 - Use of the RelativePath Multi-Module produces failure
  • MNG-1417 - Relocated artifacts hide other versions that should be picked
  • MNG-1424 - Specifying version for a plugin in pluginManagement does not force Maven to use this version
  • MNG-1434 - [patch] Fix some typos and broken links
  • MNG-1443 - should not fail in offline mode if pom doesn't exist
  • MNG-1466 - Ant dependencies task does not work with multiple repositories
  • MNG-1474 - Profile properties do not appear to be substituted in the scm connection string
  • MNG-1499 - Execution order is arbitrary if inheritance is involved
  • MNG-1529 - NPE when inheriting report sets
  • MNG-1559 - Error (Nonexistent component: org.apache.maven.lifecycle.mapping.LifecycleMappingnar) for clean goal.
  • MNG-1586 - activeByDefault is ignored
  • MNG-1603 - POM is not read using the right encoding
  • MNG-1620 - par and ejb3 files must expose its classes to the classpath, so other modules can use them when compiling
  • MNG-1630 - Optional tag in dependencyManagement is not inherited in the children projects
  • MNG-1642 - Incorrect APT markup applied to the Title of the guide-releasing.apt
  • MNG-1646 - Optional tag in project dependency doesn't work
  • MNG-1656 - xml-apis relocation wrong
  • MNG-1666 - PluginParameterExpressionEvaluator, StringIndexOOBE
  • MNG-1784 - mvn install - multiple modules using subproject as launch point - pom.xml gets renamed installed in local repository as a .war file
  • MNG-1804 - Can't load a class from a plugin, when this class is in a user's pom/build/plugins/plugin/dependencies
  • MNG-1842 - maven/plugins/trunk fails to build on clean system

Improvement

  • ARCHETYPE-6 - Metadata missing from ibiblio
  • ARCHETYPE-8 - example maven project architecture (jars, wars, ejbs, and an ear)
  • MNG-123 - bootstrap should build with itself
  • MNG-764 - pom with modules should fail if packaging is not pom or an aggregator
  • MNG-857 - Maven Archetype documentation
  • MNG-897 - allows use of Ant build files
  • MNG-1182 - update plexus-utils code for stream handling
  • MNG-1198 - group artifact not found exceptions
  • MNG-1217 - Relocation messages don't mention the artifact that was relocated
  • MNG-1265 - Improve information displayed by "mvn --version"
  • MNG-1270 - allow custom artifact handlers using build extensions
  • MNG-1271 - Maven 2 needs to give a warning when it is being run in a Maven 1 project and there isn't a pom.xml file
  • MNG-1276 - warning too verbose for invalid poms
  • MNG-1286 - Check exclusions against relocated artifacts
  • MNG-1287 - Bring back dependency path tree in "Failed to resolve artifact." error
  • MNG-1352 - Improve message when a required config is not present in pom.xml
  • MNG-1361 - Improve the message when the version is missing from a dependency
  • MNG-1404 - Provide informative messages when POM is invalid
  • MNG-1550 - save checksum in local repository
  • MNG-1594 - Update sun jars guide
  • MNG-1788 - setup lax parsing of repository poms and metadata

New Feature

  • MNG-1223 - warning with multiple child modules with the same artifact id
  • MNG-1525 - Allow environment variables to be referenced in pom.xml, settings.xml, etc.
  • MNG-1650 - Maven Archiver should allow pom.xml and pom.properties to be excluded in the generated jar

Task

  • MNG-40 - Sites for all components
  • MNG-263 - restructure maven-components when in SVN
  • MNG-1092 - minor site improvements

Wish

  • [MNG-1598] - It should be possible not to include the META-INF/maven directory in produced jars

2.0 Release Notes

Maven 2.0 is a rewrite of the popular Maven application to achieve a number of new goals, and to provide a stable basis for future development.

This release includes the following new features and changes since Maven 1.0:

  • Significantly faster and smaller than previous releases.
  • Improved dependency management including dependency closures (transitive dependencies), version ranges, automatic build numbering, and automatic updating on a configurable interval.
  • Defined build lifecycle. Any type of project can be built using standard commands such as compile, test and install.
  • Improved reactor operation. Built in support for multiple projects and without the need to perform a full install cycle to compile all projects. Includes support for project aggregation.
  • Improved plugin architecture, with plugins that can be written in Java and scripting languages such as Beanshell.
  • Unified project definition. All information required to build is contained in a single POM, including project information, dependencies and plugin configuration.
  • Improved repository support, including separated snapshot repositories, a new more managable layout and per-project definitions of new repositories.
  • New site management tools that support multiple input and output formats. New input formats include wiki-like APT format, docbook while continuing to support traditional Maven XDoc and FAQ format.
  • Reporting API for producing project information and reports in a standard way.

This release is considered stable with a feature set that encompasses and supersedes Maven 1.0.

Complete Release Notes