Maven 3.0-beta-1

The Apache Maven team would like to announce the release of Maven 3.0-beta-1.

Maven 3.0-beta-1 is available for download from the 'preview' section.

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.

Maven 3 aims to ensure backward compatibility with Maven 2, improve usability, increase performance, allow safe embedding, and pave the way to implement many highly demanded features.

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:

Maven 3.0-beta-1 Release Notes

Maven 3 aims to ensure backward compatibility, improve usability, increase performance, allow safe embedding, and pave the way to implement many highly demanded features.

Noteworthy changes in this release are the revision of version range to no longer include snapshot versions unless explicitly matched by a range boundary (cf. [MNG-3092]) and the support for parallel builds (cf. [MNG-3092]). Users that intent to use this feature are strongly advised to read the Guide on Parallel Builds to learn about potential ramifications.

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

Known Incompatibilities with Maven 2

Please refer to the following compatibility notes.

Release Notes - Maven - Version 3.0-beta-1 (since 3.0-alpha-7 only)

Bug

  • [MNG-1751] - merging metadata doesn't fail when timestamp is in the future
  • [MNG-2103] - Inheritance of plugin overrides that of execution
  • [MNG-2222] - dependency to dependency without source code fails
  • [MNG-2276] - profile activation by property doesn't work with properties defined in settings.
  • [MNG-2994] - Snapshot repositories are not checked when using ranges
  • [MNG-3092] - Version ranges with non-snapshot bounds can contain snapshot versions
  • [MNG-3133] - DefaultModelInheritence::appendPath assumes it is operating on interpolated/literal paths
  • [MNG-3470] - Build does not fail on corrupted POM even with checksumPolicy=fail
  • [MNG-3477] - Authentication failures on dependency download aren't reported
  • [MNG-3529] - mvn -Da=" " throws an excepltion
  • [MNG-3616] - Null Pointer Exception when mirrorOf missing from mirror in settings.xml
  • [MNG-3700] - ModelUtils.clone doesn't clone plugin entries where inherited == false
  • [MNG-4022] - Incorrect merge behavior using profile driven plugin configuration
  • [MNG-4326] - Maven should not check snapshot repositories for dependencies in the reactor
  • [MNG-4418] - Dependency resolution appears to misbehave if a remote repository uses the id "local"
  • [MNG-4453] - [regression] Plugin versions defined in a lifecycle mapping are not respected
  • [MNG-4555] - mvn archetype:generate -o (offline) still results in a "checking updates from central"
  • [MNG-4580] - Plugin dependencies for module ignored when building from aggregator project using direct plugin invocation
  • [MNG-4586] - Plugin prefix can't be resolved from plugin management if management entry is missing plugin version
  • [MNG-4590] - [regression] System properties are no longer interpolated in imported POMs
  • [MNG-4600] - [regression] Optional flag from dependency management applied to dependencies
  • [MNG-4618] - maven-javadoc-plugin aggregate-jar fails with maven3 and multiple modules
  • [MNG-4625] - Interpolation of settings.xml fails if an expression's value contains XML markup
  • [MNG-4629] - [regression] POM validation fails upon non-existing system-scope dependency
  • [MNG-4632] - Class loading is not thread-safe

Improvement

  • [MNG-1701] - Validate that a plugin is not configured twice in the pom
  • [MNG-2187] - Improve error message when the pom is encoded in the wrong charset
  • [MNG-2741] - [regression] Meaningless error message: "Error transferring file"
  • [MNG-3004] - Allow build lifecycle to execute projects in parallel
  • [MNG-3779] - Improve error message when trying to execute mojo with no pom.xml
  • [MNG-4162] - Removal of all reporting logic from the core of Maven
  • [MNG-4194] - API to safely release of plugin realms
  • [MNG-4591] - Enhance the download rate output to include downloaded file name
  • [MNG-4610] - Bump maven-release-plugin to v2.0 in super POM
  • [MNG-4619] - Issue warning in case parent.relativePath points at POM with different groupId/artifactId
  • [MNG-4623] - model parsing errors can be less helpful in Maven 3
  • [MNG-4628] - ReactorArtifactRepository is not setup soon enough for AbstractMavenLifecycleParticipant#afterProjectsRead
  • [MNG-4634] - Allow custom lifecycles

Task

  • [MNG-3917] - Complete the POM construction tests which will be the validation for the specification