Release Notes

Maven 3.0.4 Release Notes

Maven 3.0.4 is a maintenance release to address various regressions/bugs and to deliver other minor improvements. The new version 3.0.4 is a recommended update for anybody currently using Maven 3.0.x.

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 before reporting any issues regarding changed build behavior in Maven 3.x.

Release Notes - Maven - Version 3.0.4 (since 3.0.3 only)

Bug

  • [MNG-4792] - Preemptive authentication doesn't work
  • [MNG-5064] - mvn -nsu (--no-snapshot-updates) should not download snapshots (and break local builds)
  • [MNG-5096] - exclusion on dependency with typetest-jar/type doesn't work in maven 3
  • [MNG-5113] - NullPointerException on javadoc site generation
  • [MNG-5131] - Wrong encoding for encrypted passwords
  • [MNG-5135] - Regression: in some cases aggregator mojo is unable to resolve dependencies with custom packaging
  • [MNG-5137] - Reactor resolution does not work for forked multi module builds
  • [MNG-5149] - DefaultArtifactRepositoryFactory.createArtifactRepository overload w/ layoutId passes wrong (repo) id
  • [MNG-5153] - ModelMerger omits relativ path
  • [MNG-5155] - 'inherited' flag of report sets ignored.
  • [MNG-5157] - NPE stemming from DefaultModelBuilder.containsCoordinates
  • [MNG-5163] - MavenProject.getPluginRepositories misimplemented
  • [MNG-5164] - Odd name of central in superpom
  • [MNG-5165] - Problem with scp transport (wagon-maven-plugin 1.0-beta-3, Maven 2.2.1, Ubuntu 11.04)
  • [MNG-5192] - prevent ConcurrentModificationException in parallel mode -Tx when project have errors
  • [MNG-5221] - Default version of m-site-p does not work (no reports)
  • [MNG-5225] - The default version of the maven-site-plugin as defined in the site-lifecycle must be 3.x
  • [MNG-5224] - REGRESSION: Injected Settings in a Mojo are missing the profiles from settings.xml

Improvement

  • [MNG-4112] - Set property containing the currently executing maven version.
  • [MNG-5073] - ProjectBuilder.build(File,ProjectBuildingRequest) returns null project if dependency version info is missing
  • [MNG-5076] - Improve SEO of documentation of lifecycle.xml
  • [MNG-5119] - improve site organization of core components
  • [MNG-5134] - Standard documentation for build-in properties
  • [MNG-5141] - Make MojoExecutor.ensureDependenciesAreResolved public
  • [MNG-5151] - use CNAME or repo to provide more stability
  • [MNG-5152] - upgrade wagon to the final 1.0 version
  • [MNG-5158] - Make loading of extensions from lib/ext more robust with regard to existence of ext directory
  • [MNG-5159] - Extend validation of settings.xml to check for uniqueness of id elements
  • [MNG-5175] - replace wagon http lightweight with wagon http 2.1
  • [MNG-5200] - upgrade plugin versions in super pom
  • [MNG-5201] - upgrade aether to 1.13 and sisu to 2.3.0

Task

  • [MNG-5046] - Remove $Id$ from sources

Test

  • [MNG-5114] - Handling unrecognized version qualifiers

Wish

  • [MNG-5118] - add aggregated javadoc

Maven 3.0.3 Release Notes

Maven 3.0.3 is a maintenance release to address various regressions/bugs and to deliver other minor improvements. The new version 3.0.3 is a recommended update for anybody currently using Maven 3.0.x.

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 before reporting any issues regarding changed build behavior in Maven 3.x.

Release Notes - Maven - Version 3.0.3 (since 3.0.2 only)

Bug

  • [MNG-4551] - List parameter in a mojo has strange behaviour
  • [MNG-4956] - Cygwin mvn script modifies CLASSPATH environment variable
  • [MNG-4962] - MavenProject.getParent fails to build when parent POM, in reactor, references BOM also in reactor
  • [MNG-4963] - [regression] Parent POM not downloaded when settings define global mirror and one snapshot repo but no other release repository
  • [MNG-4973] - [regression] Build extensions are invisible to plugins in multi module build
  • [MNG-4975] - [regression] plugin executions injected from profile run before instead of after existing executions in the POM
  • [MNG-4982] - [regression] Cycle between transitive dependencies causes bad effective dependency scope
  • [MNG-4987] - [regression] LATEST, RELEASE or SNAPSHOT version picked from wrong repository when resolution order does not match timestamp order
  • [MNG-4990] - RepositorySystem#resolve(request) uses two different local repositories
  • [MNG-4991] - LegacyRepositorySystem#injectProxy(repositories, proxies) doesn't evaluate non-proxy hosts
  • [MNG-5000] - [regression] child distributionManagment.site.url not correct in a flat directory layout when child's artifactId doesn't match its module name
  • [MNG-5003] - MavenPluginManager serves m2e partially initialized mojo descriptors in some cases
  • [MNG-5005] - bin/mvn contains platform specific echo when on Mac OSX and JAVA_VERSION envvar is set
  • [MNG-5006] - [regression] Resolution of parent POMs for dependency using version range does not consider all configured repositories
  • [MNG-5009] - StackOverflowError in DefaultProjectBuilder.build when module points at current aggregator POM
  • [MNG-5014] - [regression] MavenProject.getParent().isExecutionRoot() not properly set
  • [MNG-5019] - [regression] String-based component lookups performed by report mojos fail with ClassCastException
  • [MNG-5023] - Wrong calculation of Build Total time

Improvement

  • [MNG-3575] - Allow hexadecimal parameters
  • [MNG-4971] - Display maven home in version info
  • [MNG-4984] - Simplify drop in of 3rd party extensions for Maven core
  • [MNG-4988] - API to calculate execution plan without full mojo execution configuration
  • [MNG-4992] - Allow to configure plugin parameters of type java.util.Properties just like a map
  • [MNG-5011] - Allow to configure array/collection type plugin parameters via system properties
  • [MNG-5012] - Allow to configure array-typed plugin parameters from expressions yielding collections and vice versa
  • [MNG-5013] - Allow to condense configuration of plugin parameter beans that commonly require only one value
  • [MNG-5020] - JAVA_HOME auto discovery
  • [MNG-5028] - Obey generics in plugin collection parameters when populating them
  • [MNG-5033] - Allow to inline collection/array items within plugin configuration

Task

  • [MNG-5024] - Update default plugin versions

Maven 3.0.2 Release Notes

Maven 3.0.2 is a maintenance release to address various regressions/bugs and to deliver other minor improvements. The new version 3.0.2 is a recommended update for anybody currently using Maven 3.0.

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 before reporting any issues regarding changed build behavior in Maven 3.x.

Release Notes - Maven - Version 3.0.2 (since 3.0.1 only)

Bug

  • [MNG-4840] - Prerequisites is not working on m3
  • [MNG-4913] - [regression] User properties override equally named POM properties of transitive dependencies
  • [MNG-4915] - Versions in pom.xml are not checked for invalid characters
  • [MNG-4918] - MavenProject#clone() doubles active profiles
  • [MNG-4919] - Plugin execution contributed by lifecycle mapping gets lost when same goal is bound multiple times
  • [MNG-4923] - [regression] java.lang.ClassNotFoundException: org.apache.maven.artifact.ArtifactStatus
  • [MNG-4925] - Mismanagement of container lookup realm can cause type incompatibilities for plugins looking up components by string
  • [MNG-4933] - With a resource directory as . maven raise an java.lang.StringIndexOutOfBoundsException:217
  • [MNG-4941] - PluginDescriptorBuilder doesn't populate expression/default-value fields for mojo parameters
  • [MNG-4952] - [regression] RELEASE field of repository metadata is not updated upon repeated deployments
  • [MNG-4955] - [regression] Outdated remote snapshots are preferred over locally installed snapshots
  • [MNG-4960] - [regression] Make-like reactor mode does not build selected project when resuming from one of its prerequisites
  • [MNG-4966] - Preserve double slashes in the scm connection url - identifies absolute repository paths for mercurial

Improvement

  • [MNG-4912] - Use of raw type should be ComparableArtifactVersion
  • [MNG-4916] - Poor ProjectBuilder.build performance for projects with unresolvable extension plugins
  • [MNG-4922] - ExecutionEvent give on the exception encountered (when having mojoFailed)
  • [MNG-4926] - ExecutionEvent give on the exception encountered (when having projectFailed , forkedProjectFailed)
  • [MNG-4944] - Include JRE vendor in version info
  • [MNG-4950] - Javadoc improvements to DefaultSettingsWriter/Reader
  • [MNG-4953] - Issue a warning when a system-scope dependency refers to the project basedir

New Feature

  • [MNG-4936] - Allow to better monitor and adjust a Maven build during CI
  • [MNG-4937] - Allow the platform scripts to avoid loading mavenrc content

Task

  • [MNG-4945] - Remove mergeId from public POM
  • [MNG-4957] - Emit validation warning when project version uses irregular SNAPSHOT version string
  • [MNG-4959] - Update default plugin versions

Maven 3.0.1 Release Notes

Maven 3.0.1 is a maintenance release to address various regressions/bugs and to deliver other minor improvements. The new version 3.0.1 is a recommended update for anybody currently using Maven 3.0.

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 before reporting any issues regarding changed build behavior in Maven 3.x.

Release Notes - Maven - Version 3.0.1 (since 3.0 only)

Bug

  • [MNG-4850] - [regression] several elements of server configuration in settings.xml are not honoured
  • [MNG-4858] - NullPointerException if goal name is malformed
  • [MNG-4864] - npe when transferring artifacts
  • [MNG-4866] - DefaultLegacySupport leaks MavenSession instances in some cases
  • [MNG-4867] - incorrect namespace in settings.xml
  • [MNG-4874] - The latestVersion value isn't updated for local installs
  • [MNG-4877] - Regression: Deploy to SCP with privateKey fails - privateKey and passphrase gets lost
  • [MNG-4883] - [regression] Dependency resolution does not fail for artifact with over-constrained version ranges
  • [MNG-4884] - Guice provision errors
  • [MNG-4892] - Use of --log-file doesn't capture all output, e.g. from maven-antrun-plugin
  • [MNG-4895] - Plugins depending on 3rd party JARs that contain the Maven API can't be configured/run due to type incompatibilities
  • [MNG-4900] - "Unresolveable build extension" when using shade plugin and repositories in profile

Improvement

  • [MNG-4860] - Allow management of project building request kept inside MavenProject instances
  • [MNG-4891] - Improve robustness of snapshot dependency resolution in case a remote repo accidently uses the id "local"
  • [MNG-4896] - Help for -pl option does not include use of comma-sep, also more than one -pl does not work or complain
  • [MNG-4904] - Make MavenExecutionResult.getTopologicallySortedProjects() return empty list instead of null
  • [MNG-4907] - Wrong error message when relativePath wrong
  • [MNG-4909] - Emit warning when dependency with scope import but inproper type is declared
  • [MNG-4910] - Use BeanConfigurator for configuration sub-elements

Task

  • [MNG-4902] - Update default plugin versions
  • [MNG-4903] - Update to Wagon 1.0-beta-7

Maven 3.0 Release Notes

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

Users that intent to use the new parallel build 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 before reporting any issues regarding changed build behavior in Maven 3.

Release Notes - Maven - Version 3.0 (since 3.0-beta-3 only)

Bug

  • [MNG-4592] - Snapshot artifacts that could not be downloaded due to communication problems are "blacklisted" for a day by default.
  • [MNG-4751] - Snapshot version not resolved for version range
  • [MNG-4785] - NPE in dependency resolution code for TC plugin
  • [MNG-4786] - [regression] Ant-based mojo using maven-script-ant:2.1.0+ cause NPE
  • [MNG-4788] - [regression] Appassembler Maven Plugin doesn't work like as it should
  • [MNG-4789] - [regression] Difference in compile scope dependency resolution
  • [MNG-4791] - [regression] POM artifacts passed into MavenProjectBuilder.buildFromRepository() are no longer resolved
  • [MNG-4793] - Unable to obtain archiver for extension 'zip'
  • [MNG-4794] - 'org.apache.maven.plugins:maven-install-plugin:2.3.1'. A required class is missing: org.codehaus.plexus.digest.Digester
  • [MNG-4795] - [regression] Dependencies in forked reactor projects are not resolved when aggregator bound to lifecycle forks
  • [MNG-4800] - Conflict resolution does not pick sub tree of nearest dependency if farther conflicting dependency has wider scope
  • [MNG-4810] - Maven cannot build if loaded in a classloader that is not backed by a real JAR file / classpath
  • [MNG-4811] - Custom Maven Plugin regression in Maven 3.x, custom ComponentConfigurator causes infinite loop
  • [MNG-4814] - Eary dependency resolution attempts for reactor projects prevent their later resolution from the reactor
  • [MNG-4818] - NPE in legacy.DefaultWagonManager.getArtifact
  • [MNG-4829] - [regression] Checksum failures aren't logged
  • [MNG-4832] - Maven 3 Regression: Missing constructor of org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter
  • [MNG-4834] - [regression] MavenProject.getParent() ignores configured repositories
  • [MNG-4836] - Incorrect recursive expression cycle errors (update plexus-interpolation)
  • [MNG-4837] - Interpolation error due to cyclic expression for one of the POM coordinates gets needlessly repeated
  • [MNG-4842] - [regression] Repositories discovered in dependency POMs override repositories configured for original resolution request of POM
  • [MNG-4845] - [regression] MavenProject.getDependencyArtifact() returns artifacts without version for dependency with version range

Improvement

  • [MNG-4452] - Metadata for snapshots should include classifier
  • [MNG-4787] - Allow class realm manager delegates to alter public part of Maven core realm
  • [MNG-4815] - (3.0-RC1) Maven Java API does not give nice error messages when improperly configured
  • [MNG-4824] - multiple failures need additional whitespace
  • [MNG-4825] - Relative path errors could be more explicit

New Feature

  • [MNG-4484] - Create a Maven API for component configuration

Task

  • [MNG-4805] - Update default plugin versions used for built-in lifecycle mappings
  • [MNG-4807] - Extend core artifact filter to exclude relocated Guice-based Plexus shim

Wish

  • [MNG-4796] - add a warning when profiles.xml is used (Maven 2) or detected (Maven 3)

Maven 3.0-beta-3 Release Notes

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

Users that intent to use the new parallel build 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 before reporting any issues regarding changed build behavior in Maven 3.

Before reporting any new bugs, please also double-check for any duplicates with already known bugs in Maven 3.0-beta-3.

Release Notes - Maven - Version 3.0-beta-3 (since 3.0-beta-2 only)

Bug

  • [MNG-2686] - POM dependency scope auto-downgrades from provided to test
  • [MNG-4690] - Transitive dependency lost when included another dependency
  • [MNG-4745] - [regression] Maven does not check for plugin updates, even if forced via -U
  • [MNG-4755] - Version ranges cannot be resolved against mirror if a local artifact is present
  • [MNG-4761] - Plugin-level dependency scope causes some plugin classpaths to be incorrect
  • [MNG-4765] - Failing to determine java version for profile....
  • [MNG-4767] - Regression in parsing command-line arguments including variables
  • [MNG-4768] - Depending on declaration order, nearest matching version does not win when version range is involved in conflict
  • [MNG-4769] - Regression: enabled flag for central cannot be overriden
  • [MNG-4771] - [regression] Plugin prefix resolution ignores enabled flags on repository
  • [MNG-4772] - [regression] Plugin version resolution ignores enabled flags on repository
  • [MNG-4773] - Stack trace printed from MavenProject.getParent
  • [MNG-4775] - Outdated NOTICE.txt
  • [MNG-4776] - NPE during build from parent but not from child
  • [MNG-4779] - NullPointerException thrown during dependency resolution when dependency with range occurs more than once in the dirty tree
  • [MNG-4781] - Can't deploy to Nexus staging repository

Improvement

  • [MNG-4749] - Move from Plexus to Guice as IoC container
  • [MNG-4782] - Automatically dump stack trace in case of internal Maven error

New Feature

  • [MNG-4756] - Aether integration

Maven 3.0-beta-2 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.

Users that intent to use the new parallel build 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-2 (since 3.0-beta-1 only)

Bug

  • [MNG-1803] - Provide line number information when there are errors processing a pom.xml
  • [MNG-4615] - [regression] @required plugin parameters are not validated
  • [MNG-4643] - [regression] Transitive dependency not available due to dependency POM erroneously rejected as invalid
  • [MNG-4648] - NullPointerException thrown from DefaultPluginRealmCache#pluginHashCode method if project-level plugin dependency misses version
  • [MNG-4651] - Site 3.x plugin broken due to api change
  • [MNG-4666] - [regression] Plugins depending on plexus:plexus-container-default get broken runtime classpath
  • [MNG-4677] - [regression] Plugin configuration incorrectly inherited from parent pom
  • [MNG-4678] - CLI: AbstractConsoleDownloadMonitor, BatchModeDownloadMonitor output download progress to STDOUT
  • [MNG-4679] - [regression] command line option "-update-snapshots" does not work for dependency:copy-dependencies
  • [MNG-4682] - Exception upon build failure in parallel builds
  • [MNG-4684] - distributionManagment section in profiles do not override default one (maven 3 regression)
  • [MNG-4695] - Missing Error during pom validation: "You cannot have two plugin executions with the same (or missing) id/ elements."
  • [MNG-4696] - [regression] MavenProject.getDependencyArtifacts() misses elements
  • [MNG-4717] - Repository Ids containing ":" will lead to checksum errors on Windows machines
  • [MNG-4718] - [regression] Missing Class in 3.0-beta-1: org.apache.maven.project.artifact.AttachedArtifact
  • [MNG-4729] - Mirrors and servers not accessed properly by plugin on a build
  • [MNG-4738] - DefaultArtifactResolver forks non-daemon threads
  • [MNG-4740] - Maven hangs with big aggregators with lots of inter-modules dependencies
  • [MNG-4747] - Javaagent not usable since 3.0-alpha
  • [MNG-4750] - [regression] MavenProject.getDependencyArtifacts() aren't resolved

Improvement

  • [MNG-4642] - Mojos need some way to indicate support of multithreading
  • [MNG-4693] - add a dependency graph with image map to navigate easily to modules
  • [MNG-4732] - Version string validation
  • [MNG-4744] - Validate coordinates of dependency exclusions

Task

  • [MNG-4658] - Relax validation of repository ids and only warn upon conflict with "local"
  • [MNG-4664] - Minor patches needed to run Maven3 with the replacement Guice-Plexus container
  • [MNG-4697] - Deprecate ununsed CLI options for plugin registry
  • [MNG-4725] - Extend core artifact filter to exclude Guice-based Plexus shim

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

Maven 3.0-alpha-7 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.

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-alpha-7 (since 3.0-alpha-6 only)

Bug

  • [MNG-2281] - 1.0-beta-3 should be < 1.0-SNAPSHOT
  • [MNG-4526] - [regression] Shade plugin includes too much (relative to 2.2.1)
  • [MNG-4528] - [regression] mvn deploy ignores proxy settings
  • [MNG-4529] - maven fails on IBM JDK 1.5.0 with exception IllegalAccessException: Field is final
  • [MNG-4536] - Long build time - enforcer running too many times
  • [MNG-4542] - StringSearchModelInterpolator concurrency problem
  • [MNG-4543] - Cleanup tmp files created by DefaultWagonManager
  • [MNG-4544] - Concurrent access to Maven internals involving active component collections is not thread-safe
  • [MNG-4553] - Plugins artifact filtering should use full Artifact identification instead only ArtifactId
  • [MNG-4554] - [regression] plugin updates are requested on every build regardless of policies
  • [MNG-4561] - [regression] network settings are not applied to repositories from plugin dependencies
  • [MNG-4562] - [regression] UnsupportedOperationException with Maven AndromMDA plugin
  • [MNG-4564] - Location (and name) for settings-security.xml has changed in Maven 3
  • [MNG-4570] - [regression] User/pass from settings.xml is not used during site:deploy
  • [MNG-4571] - mvn deploy -DaltDeploymentRepository errors out
  • [MNG-4574] - [regression] invoker:install uses wrong local repo path when settings.xml contains wildcard mirror

Improvement

  • [MNG-3168] - Correct error message when project descriptor not found
  • [MNG-4432] - reimplement parallel artifacts download
  • [MNG-4464] - Improve handling of relative paths with backslashes

New Feature

  • [MNG-1144] - List 2 or more maven goals in the defaultGoal of the POM.

Task

  • [MNG-4541] - Extend class realm manager delegate to allow conditional behavior

Wish

  • [MNG-4534] - implement a preferred order for POM elements

Maven 3.0-alpha-6 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.

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-alpha-6 (since 3.0-alpha-5 only)

Bug

  • [MNG-2110] - ArtifactRepositoryLayout isn't extensible
  • [MNG-3266] - maven-model RepositoryBase overrides equals() but not hashCode()
  • [MNG-3610] - Endless loop with relocation jtds:jtds
  • [MNG-4200] - Build fails on system without svn client
  • [MNG-4379] - Properties defined in parent POM and used in systemPath element cause POM validation warnings and dependencies ignoration - compilation error
  • [MNG-4465] - [regression] can't run mvn help:effective-settings when offline
  • [MNG-4466] - Plugin Metaversion Compatibility
  • [MNG-4469] - [regression] deploy:deploy-file fails with secured repository
  • [MNG-4470] - [regression] Proxies are ignored during artifact deployment
  • [MNG-4472] - [regression] Circular self-referential POM causes network access
  • [MNG-4474] - [regression] Wagon manager does not respect instantiation strategy of wagons
  • [MNG-4475] - Transitive Dependency Resolution silently fails if parent pom cannot be retrieved from repository
  • [MNG-4482] - [regression] command line option "-update-snapshots" does not work for plugins/extensions
  • [MNG-4488] - [regression] Parent POMs resolved from repository are validated in strict mode
  • [MNG-4489] - [regression] Mirror/proxy/auth does not apply to repositories discovered in POMs of build extensions
  • [MNG-4495] - mvnUpdate attempts to use a non-existent .cd directory
  • [MNG-4500] - [regression] Maven checks for updates of timestamped snapshots
  • [MNG-4509] - MAVEN_DEBUG_OPTS in mvnDebug.bat is set at the wrong place
  • [MNG-4510] - NoSuchMethodError when using Maven 3
  • [MNG-4511] - API incompatibility in MavenProjectBuilder (Maven-3)
  • [MNG-4512] - [regression] Profile activation based on JDK version range fails if current version is close to range boundary
  • [MNG-4518] - Profile activation based on JRE version misbehaves if java.version has build number

Improvement

  • [MNG-2546] - Allow plugin executions in the "super-init" phase before reactor sorting of modules build order
  • [MNG-3648] - Maven is too verbose in its output, obscuring actual messages
  • [MNG-4492] - Integration test MNG1830 fails with GIT based forks
  • [MNG-4494] - Custom repository layout should be able to participate in repository instance creation
  • [MNG-4498] - Don't fail dependency resolution if one remote repo's metadata is broken

Task

  • [MNG-1086] - Use the embedder in Maven's integration tests
  • [MNG-3902] - Remove visibility MavenProjectBuilder#buildStandaloneSuperProject

Maven 3.0-alpha-5 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.

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-alpha-5 (since 3.0-alpha-4 only)

Bug

  • [MNG-4450] - [regression] Stub project for missing dependency POMs is not properly created
  • [MNG-4454] - Incomplete parent element causes NPE
  • [MNG-4459] - [regression] Effective settings as visible to plugins contain plain text passwords
  • [MNG-4461] - [regression] No transfer progress during artifact deployment

Improvement

  • [MNG-4440] - error message should clearly indicate the module that failed, and how to continue
  • [MNG-4456] - Deprecate fully qualified pathnames in system path

Maven 3.0-alpha-4 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.

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-alpha-4 (since 3.0-alpha-3 only)

Bug

  • [MNG-4361] - [regression] command line option "-update-snapshots" does not work
  • [MNG-4433] - [regression] command line option "-update-snapshots" does not work for parent POMs
  • [MNG-4436] - [regression] Singleton components can get instantianted multiple times

Improvement

  • [MNG-4439] - apache-maven project should not deploy a source JAR or JAR, as it is only a distribution module

Task

  • [MNG-3913] - Figure out why MavenEmbedderExampleTest fails on the grid and reenable when fixed.
  • [MNG-4412] - Make legacy entry points to repository system pick offline mode from session

Maven 3.0-alpha-3 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.

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-alpha-3 (since 3.0-alpha-2 only)

Sub-task

  • [MNG-3013] - The plugin manager incorrectly caches plugin versions between embedder calls
  • [MNG-3862] - Remove all plugin configuration manipulation from the plugin manager
  • [MNG-3932] - Remove all mirror, authentication, and proxy handling out of WagonManager and into a neutral Maven implementation
  • [MNG-4163] - Deprecate all methods in MavenProject that relate to reporting.
  • [MNG-4215] - Review and fix hashCode/equals methods of ArtifactRepository implementations

Bug

  • [MNG-1943] - MavenProject::getParent() returns a MavenProject that is NOT interpolated
  • [MNG-2098] - Artifact resolver incorrectly selects repository which doesn't contain the selected version
  • [MNG-2140] - Mojo in forked lifecycle invoked in reactor build cannot find reactor dependency
  • [MNG-2174] - <pluginManagement><plugins><plugin><dependencies> do not propogate to child POM plugins (potentially scoped to only affecting child POM plugins that live within a <profile>)
  • [MNG-2363] - <profile><activation><file><exists/> does not work in a multi-project build
  • [MNG-2693] - Error executing post-site: java.util.MissingResourceException: Can't find bundle for base name site-plugin, locale en
  • [MNG-2720] - Multiproject dependencies not accurate for project.compileClasspathElements when run from root project
  • [MNG-3018] - pluginManagement configurations are not honoured when plugin is silently included
  • [MNG-3043] - Allow 'mvn test' to work with test-jar dependencies in a reactor
  • [MNG-3139] - The skin does not exist: Unable to determine the release version
  • [MNG-3260] - 2.1: aggregating plugins in submodules of the reactor return all projects causing a chicken/egg issue
  • [MNG-3265] - maven-model Extension.equals causes NPE when any field is uninitialized
  • [MNG-3281] - Revisit backwards compat of extensions (IT 0114)
  • [MNG-3391] - StackOverflowError in DefaultMavenProjectBuilder
  • [MNG-3401] - Plugin parameters must be specified outside an execution block when they are invoked from the command line
  • [MNG-3483] - merging managed dependencies should ONLY work when scope == import explicitly
  • [MNG-3543] - readProjectWithDependencies take very long time for some projects
  • [MNG-3567] - pluginManagement from parent POM not used in child
  • [MNG-3607] - Class loaders employed by Maven return invalid URLs to resources
  • [MNG-3641] - Lack of error checks on profiles
  • [MNG-3683] - [regression] Help plugin does not work
  • [MNG-3732] - [regression] project.getActiveProfiles() has not the same behaviour
  • [MNG-3757] - Setting M2_HOME to nothing and running ant delets contents of the current folder
  • [MNG-3803] - [regression] System properties not working any more
  • [MNG-3807] - Maven is not interpolatin Properties at plugin configuration
  • [MNG-3814] - Reactor builds fail due to erroneous cycle in project sorting which does not consider versions
  • [MNG-3819] - [regression] Plugins that don't declare dependency on plexus-utils no longer get plexus-utils:1.1
  • [MNG-3836] - [regression] Inherited collection from plugin configuration is merged with configuration from child whereas child config should completely override collection
  • [MNG-3848] - [regression] Inheritance of project/site/scm URLs does not take child's relative location to parent into account
  • [MNG-3853] - [regression] Distribution Management injected by profile is not reflected by MavenProject
  • [MNG-3872] - Profiles not being activated for relocated POMs
  • [MNG-3877] - Reporting output directory not basedir aligned when queried from MavenProject
  • [MNG-3885] - Modules of Maven projects are deployed with Timestamp during reactor build when uniqueVersion is set to false in parent profile
  • [MNG-3900] - [regression] Properties defined by active profiles are not used for POM interpolation
  • [MNG-3918] - NPE in CLIReportingUtils
  • [MNG-3919] - NPE in DefaultLifecycleBindingManager
  • [MNG-3925] - [regression] Wrong order of plugin executions after merge with executions inherted from parent
  • [MNG-3927] - [regression] Configuration of custom plugin execution using default id pollutes configuration of default plugin executions introduced by packaging
  • [MNG-3941] - Execution project is accessible to later mojo executions
  • [MNG-3947] - [regression] Configuration of plugin execution with id "default" pollutes configuration of standalone plugin execution from CLI
  • [MNG-3991] - POM validator allows <scope>optional</scope> but it is not valid.
  • [MNG-3995] - Configuration Property Lost In Join of PluginManagement/Plugin
  • [MNG-4008] - [regression] Build filters are collapsed
  • [MNG-4009] - [regression] Effects of active profiles from parent are not inherited by children.
  • [MNG-4027] - [regression] Injection of dependencies from profiles crashes project builder
  • [MNG-4034] - [regression] dependency version is not inherited from parent dependencyManagement
  • [MNG-4035] - Cannot find setter nor field in org.apache.maven.plugin.plugin.metadata.AddPluginArtifactMetadataMojo for 'extractors'
  • [MNG-4036] - [regression] Maven 3.x can't resolve parent POMs from repositories defined in settings.xml
  • [MNG-4040] - Tycho build fails with PluginDescriptor for the plugin was not found
  • [MNG-4041] - embedder returns stale maven project state
  • [MNG-4050] - Bootstrap fails since the commons-parent pom has empty repo URL
  • [MNG-4052] - import scope dependencies prefer to download pom rather than find it in the current project
  • [MNG-4053] - [regression] XML attributes in plugin configuration get duplicated to other elements in combination with plugin management
  • [MNG-4055] - wrong error on mvn install in folder without pom.xml
  • [MNG-4068] - [regression] Use proper id for mirrored repository
  • [MNG-4070] - [regression] Parent POMs cannot be resolved when their id values are surrounded by whitespace
  • [MNG-4072] - [regression] Repositories from inactive profiles are used for artifact resolution
  • [MNG-4078] - [regression] Plugin metaversion RELEASE no longer resolved
  • [MNG-4102] - [regression] Properties used for interpolation of inherited properties can't be customized by child
  • [MNG-4106] - [regression] Interpolation does not use properties from dominant settings profile if other profile defines same property
  • [MNG-4107] - [regression] User settings can't override properties used for POM interpolation
  • [MNG-4109] - When running a plugin, project builder does not pick up settings profiles
  • [MNG-4116] - [regression] Effective POM contains invalid URLs upon usage of percent-encoded characters
  • [MNG-4129] - Execution's inherited is not working as expected.
  • [MNG-4172] - Project POM artifact returned as dependency if project has no dependencies
  • [MNG-4180] - [regression] Dependency exclusions are applied globally
  • [MNG-4187] - dependency:trunk doesn't work with mvn trunk rev 782332
  • [MNG-4190] - same remote repo is referecned multiple times
  • [MNG-4191] - separate plugin and artifact repositories
  • [MNG-4196] - [regression] Exclusions in project-level plugin dependencies are ignored
  • [MNG-4197] - relocation doesn't work in trunk (rev 784345)
  • [MNG-4199] - [regression] Dependency resolution for compile and runtime scope misses provided&system dependencies
  • [MNG-4201] - Custom packaging break in trunk (rev 784628)
  • [MNG-4203] - [regression] Dependency exclusions are not applied transitively
  • [MNG-4208] - [regression] CLI properties can't override project properties during interpolation
  • [MNG-4214] - [regression] Parent POMs cannot be resolved from mirrored repos
  • [MNG-4217] - trunk create a directory with %20 in name (trunk rev 787409)
  • [MNG-4227] - DefaultArtifactVersion equals implementation does not handle null
  • [MNG-4231] - Snapshots are not checked for updates
  • [MNG-4239] - NoSuchMethodError org.apache.maven.project.inheritance.ModelInheritanceAssembler.assembleModelInheritance(Lorg/apache/maven/model/Model;Lorg/apache/maven/model/Model;)V
  • [MNG-4245] - can't access protected mirrors with latest 3.0-SNAPSHOT (rev 795227)
  • [MNG-4246] - plugin resolution failures during pom-less execution (like archetype:generate)
  • [MNG-4256] - [regression] The gwt-maven-plugin is using ActiveProjectArtifact to get hold of sources in the reactor
  • [MNG-4261] - site plugin doesn't generate reports
  • [MNG-4262] - Make-like reactor mode fails to find projects selected by relative paths with leading dots
  • [MNG-4266] - Missing method ArtifactUtils.isSnapshot used in the release plugin
  • [MNG-4269] - [regression] Invocation of just installed plugin on its plugin project can fail with ComponentLookupException for mojo class
  • [MNG-4272] - Error found in code: wrong order of parameters in createRepository for repo in a profile in settings.xml
  • [MNG-4273] - [regression] Internal utility classes of core leak into plugin realm
  • [MNG-4274] - Plugins with an undeclared but transitive dependency on plexus-utils via a core artifact get wrong version of p-u
  • [MNG-4276] - Plugins with indirect dependency on plexus-utils are stuck with plexus-utils:1.1
  • [MNG-4280] - [regression] Direct CLI invocation of goal causes "default-cli" config to be processed twice, duplicating list values
  • [MNG-4281] - remote snapshots are prefered over locally installed snapshots in maven3 svn rev 800808
  • [MNG-4283] - [regression] Parent POM with packaging other than "pom" is not rejected
  • [MNG-4291] - [regression] @requiresOnline mojo annotation is ignored
  • [MNG-4304] - [regression] MavenProject.getDependencyArtifacts() not set
  • [MNG-4305] - [regression] ${localRepository.basedir} is not a proper path
  • [MNG-4312] - Magic expressions injected by PluginParameterExpressionEvalutor conflict with expressions used by plugins to access system properties
  • [MNG-4313] - Plugin descriptor builder ignores deprecation message for mojo
  • [MNG-4314] - [regression] Direct invocation of aggregator plugin causes plugin to run on each project
  • [MNG-4317] - [regression] g:a level metadata is not properly processed when resolving plugin version
  • [MNG-4318] - MavenProject.executionRoot is not set correctly
  • [MNG-4320] - [regression] Aggregators invoked from CLI no longer resolve dependencies for all reactor projects
  • [MNG-4321] - [regression] Plugin-level configuration from plugin management is not applied to goals invoked from CLI
  • [MNG-4325] - [regression] Lifecycle overlay configuration of aggregator mojos is not properly processed when forking reactor
  • [MNG-4327] - [regression] Forking mojos that are bound to a lifecycle phase that gets forked execute multiple times
  • [MNG-4328] - [regression] plugin parameters of primitive types can't be populated from expression
  • [MNG-4332] - [regression] Default plugin executions contributed by packaging execute after executions from plugin management
  • [MNG-4334] - maven core caches settings.xml
  • [MNG-4335] - [regression] <settings><offline>true</offline</settings> is not honored
  • [MNG-4338] - Unexepceted "Unknown packaging: bundle" error for plugins with custom lifecycle mapping that defines optional mojos
  • [MNG-4341] - [regression] Plugins are not executed in POM order
  • [MNG-4342] - [regression] Multiple goals within single execution with equally named parameter get configured with wrong default values
  • [MNG-4343] - maven always checks missing release artifacts
  • [MNG-4344] - [regression] Managed executions of plugins introduced by default lifecycle bindings execute before explicitly defined plugins
  • [MNG-4345] - [regression] Plugin executions contributed by default lifecycle mapping execute after other plugin executions bound to the same phase
  • [MNG-4348] - [regression] Unnecessary remote repo access for POMs while execution plugin that does not require dependency resolution
  • [MNG-4349] - [regression] Maven hangs in endless loop if POM of relocated artifact is invalid
  • [MNG-4350] - [regression] Multiple goals bound to the same phase in a lifecycle mapping get executed out of order
  • [MNG-4353] - [regression] Plugin dependencies are not downloaded from repos given in the plugin's POM
  • [MNG-4355] - [regression] Extensions without version in the POM are not resolved to the RELEASE artifact
  • [MNG-4356] - [regression] Active component maps with stateful per-lookup components broken
  • [MNG-4357] - [regression] Custom packagings from build extensions are not reliably loaded during a reactor build
  • [MNG-4359] - [regression] Locally reachable parent POMs outside of reactor are not found during dependency resolution
  • [MNG-4360] - [regression] wagon-webdav-jackrabbit doesn't work with Maven 3.x
  • [MNG-4363] - [regression] Dependency artifacts injected by plugins aren't included in class paths
  • [MNG-4365] - XmlPullParserException while parsing XML with encoded entities within attributes
  • [MNG-4378] - Maven wants to create meta data files with invalid file names
  • [MNG-4383] - Uninterpolated expressions should cause an error for dependency versions
  • [MNG-4385] - [regression] Custom lifecycle mappings from build extension leak into other projects in the reactor without extension
  • [MNG-4386] - [regression] Debug logging can't be activated
  • [MNG-4387] - [regression] Quiet logging can't be activated
  • [MNG-4393] - [regression] Parent POMs resolved from repository are parsed in strict mode
  • [MNG-4396] - [regression] Ant plugin fails with Maven-3
  • [MNG-4400] - [regression] Repository order from settings.xml is not respected during artifact resolution
  • [MNG-4401] - [regression] central repository is tried before explicitly declared repositories during parent POM resolution
  • [MNG-4408] - Missing settings.xml is silently ignores
  • [MNG-4409] - NPE when reporting command line error for non-existent option
  • [MNG-4410] - [regression] Maven execution does not end after showing usage help
  • [MNG-4411] - [regression] Maven execution does not stop after showing version
  • [MNG-4413] - [regression] Repositories discovered in dependency POMs are not subject to mirroring
  • [MNG-4415] - [regression] Plugins are not properly ordered after merging with inherited parent plugins
  • [MNG-4416] - [regression] Plugins are not properly ordered after merging with profile plugins
  • [MNG-4426] - Some javac errors not shown in console when error stacktraces are turned on
  • [MNG-4427] - Bad error message with duplicate dependencies that don't declare a version
  • [MNG-4429] - [regression] jspc plugin works in Maven 2.2.1, fails in 3.0
  • [MNG-4430] - [regression] Presence of distribution management status in POM of local project does not cause validation error

Improvement

  • [MNG-2391] - improve validation of POM elements
  • [MNG-3402] - MavenArtifactFilterManager needs to not filtering doxia-sink-api
  • [MNG-3631] - Introduce new MavenEmbedder.getPluginConfiguration method
  • [MNG-3714] - Allow specification of the toolchains.xml location on the command line
  • [MNG-3834] - Improve error message when dependency with classifier is missing version
  • [MNG-3951] - Hide drive-relative paths from plugins
  • [MNG-3969] - replace maven-ant with mercury-ant in the bootstrap
  • [MNG-4005] - Throw Validation Error if pom contains a dependency with two different versions.
  • [MNG-4037] - Include Java home in version information
  • [MNG-4048] - Allow to resolve dependencies using version range from reactor
  • [MNG-4057] - Propose checking of plugin artifact when plugin descriptor cannot be found
  • [MNG-4186] - Provide an exact pointer to documentation specific to each known exception that can occur
  • [MNG-4193] - Throw validation error upon multiple repository declarations with the same id
  • [MNG-4224] - maven lifecycle participant
  • [MNG-4244] - Allow to select project for make-like reactor by artifact id
  • [MNG-4247] - Displaying which artifacts are downloaded and from which repo
  • [MNG-4292] - Support Enum-type parameters in mojos
  • [MNG-4293] - Extend Mojo API to allow resolution of both compile and runtime dependencies
  • [MNG-4296] - allow core extensions configure new classrealms
  • [MNG-4298] - Build MavenProject instances incrementally
  • [MNG-4368] - DefaultArtifactInstaller should only overwrite files if timestamp has changed
  • [MNG-4390] - Make parsing of settings.xml lenient with respect to unrecognized tags
  • [MNG-4402] - Improve duplicated modules error
  • [MNG-4404] - Throw validation error upon duplicate profile id
  • [MNG-4405] - Uninterpolated expressions should cause an error for plugin versions
  • [MNG-4421] - Warn regarding old-style references when used in a project build
  • [MNG-4423] - Allow to query session data via plugin parameter expressions

New Feature

  • [MNG-553] - Secure Storage of Server Passwords
  • [MNG-3760] - Support property ${baseurl} to get RFC-compliant URL of project base directory
  • [MNG-4033] - Introduce password encryption to the trunk
  • [MNG-4331] - Add new mojo annotation @requiresDependencyCollection to grab dependency tree without files
  • [MNG-4367] - Consider layout for mirror selection
  • [MNG-4381] - Allow extension plugins to contribute non-core components to be reused by other plugins
  • [MNG-4398] - Provide an extension point to track artifact additions to the local repository

Task

  • [MNG-2387] - <active> on <proxy> in settings is misleading
  • [MNG-2765] - Refactor DefaultPluginManager
  • [MNG-2766] - Refactor DefaultLifecycleExecutor
  • [MNG-3850] - Integrate new Profile Activators
  • [MNG-3901] - Merge all project building code into a single component
  • [MNG-3903] - Create a Maven specific abstraction for Artifact use within Maven
  • [MNG-3935] - Get the Maven Integration Testing Hudson plugin installed on the grid
  • [MNG-4059] - Remove support for non-unique SNAPSHOT deployments
  • [MNG-4060] - Remove support for profiles.xml
  • [MNG-4062] - Evaluate possibility to cache parents during multi module build
  • [MNG-4069] - Remove support for plugin metaversion LATEST
  • [MNG-4169] - Remove invocation of maven-plugin-plugin:updatePluginRegistry from default lifecycle bindings
  • [MNG-4204] - Remove support for legacy style repositories
  • [MNG-4205] - Remove support for plugin metaversions RELEASE and LATEST
  • [MNG-4206] - Prefer RELEASE over LATEST when resolving plugin versions
  • [MNG-4216] - Remove all direct usage of DefaultArtifactRepository
  • [MNG-4221] - Push all repository/artifact related code into a legacy module and create a backward compat layer for external consumers
  • [MNG-4259] - Create a new name for the current PluginManager and create a backward compatible PluginManager implementation in maven-compat which delegates to the new implementation
  • [MNG-4260] - Remove old-school reactor mode
  • [MNG-4277] - Remove core artifacts from ${plugin.artifacts}
  • [MNG-4287] - Make ToolchainManagerPrivate session-aware

Wish

  • [MNG-4056] - Relax resolution of active project artifacts from the reactor with regard to artifact type
  • [MNG-4425] - Restore support for resume-from (-rf flag)

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] - /usr/home/cmsslave/slave15/maventest-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

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 - /usr/home/cmsslave/slave15/maventest-site-staging/build/trunk/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 [/usr/home/cmsslave/slave15/maventest-site-staging/build/trunk/target/test-classes, /usr/home/cmsslave/slave15/maventest-site-staging/build/trunk/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.