Maven Changelog

New in version 3.2.3

August 26th, 2014
  • The primary motivation for this quick release is to provide HTTPS access to Maven Central by default.

New in version 3.2.1 (February 24th, 2014)

  • Highlights:
  • Transitive dependency excludes
  • Reactor changes
  • AbstractMavenLifecycleParticipant changes
  • New Builder interface
  • Continuous delivery friendly versions
  • Custom lifecycle mapping
  • Bug:
  • [MNG-5075] - MavenProject.getParent throws undocumented ISE
  • [MNG-5389] - AbstractMavenLifecycleParticipant need a afterSessionEnd
  • [MNG-5467] - intermittent "ProtocolException: The server failed to respond with a valid HTTP response"
  • [MNG-5479] - ExecutionEvent.Type.SessionEnded omited when runtime exception thrown
  • [MNG-5494] - Add a license file that corresponds to each GAV in the distribution
  • [MNG-5528] - Help text confuses people
  • [MNG-5550] - MojoExecution source is never set to LIFECYCLE
  • [MNG-5553] - ${map(some.key)} is not properly interpolated
  • [MNG-5557] - Limit the reactor to the projects that are specified using --projects
  • [MNG-5559] - upgrade to last wagon 2.6
  • [MNG-5572] - Warn for building plugins with extensions in a reactor
  • Improvement:
  • [MNG-3526] - Small change to artifact version parsing.
  • [MNG-4099] - Password encryption CLI switches should prompt for password if missing
  • [MNG-5176] - Print build times in an ISO 8601-style manner
  • [MNG-5406] - don't expose core's slf4j-api by default, add a plugin-descriptor option to expose
  • [MNG-5530] - mojo execution guice scope
  • [MNG-5549] - Provide before/after callbacks for project and mojo execution
  • [MNG-5574] - Write error/warning messages from mvn shell and batch scripts to stderr
  • [MNG-5575] - Separate build strategies into their own implementations
  • [MNG-5576] - Allow continuous delivery friendly versions
  • [MNG-5578] - Make the ReactorReader pluggable in the core
  • [MNG-5581] - Provide a way to customize lifecycle mapping logic
  • [MNG-5582] - Continue to track all the projects in the reactor even if the set is constrained by --projects
  • New Feature:
  • [MNG-2315] - Add option to exclude all transitive dependencies for a particular one
  • [MNG-3832] - Allow wildcards in dependency exclusions
  • [MNG-5230] - Command line option to exclude modules from reactor

New in version 3.1.1 (October 5th, 2013)

  • Bug:
  • [MNG-5459] - failure to resolve pom artifact from snapshotVersion in maven-metadata.xml
  • [MNG-5495] - API incompatibility causes Swagger Maven Plugin (and others) to fail under Maven 3.1.0
  • [MNG-5499] - maven-aether-provider leaks Sisu Plexus and ObjectWeb classes onto the classpath when they are not required
  • [MNG-5500] - help for --legacy-local-repository option explains _maven.repositories instead of _remote.repositories
  • [MNG-5503] - Maven 3.1.0 fails to resolve artifacts produced by reactor build
  • [MNG-5509] - org.apache.maven.repository.legacy.DefaultWagonManager should set User-Agent

New in version 3.1.0 (July 15th, 2013)

  • Bug:
  • [MNG-3131] - Error message is misleading if a missing plugin parameter is of a type like List
  • [MNG-5016] - A mirror's layout setting should default to 'default' since thats' the only layout supported lay in maven 3
  • [MNG-5206] - plexus container never disposed
  • [MNG-5208] - Parallel (-T option) multi module build fires wrong "project failed event"
  • [MNG-5209] - MavenProject.getTestClasspathElements can return null elements
  • [MNG-5212] - DefaultPluginDescriptorCache does not retain pluginDescriptor dependencies
  • [MNG-5214] - Dependency resolution substitutes g:a:v:jar for j:a:v:something-else when something-else isn't in the reactor
  • [MNG-5233] - ArtifactMetadataRetrievalException from org.apache.maven.artifact.metadata is not anymore binary compatible.
  • [MNG-5258] - localRepository in settings.xml does not handle ~ as home.dir
  • [MNG-5261] - upgrade wagon version to 2.3 to fix issues with redirect
  • [MNG-5270] - README.bootstrap.txt says "Ant 1.6.5 or later" BUT 1.8 or later is needed
  • [MNG-5280] - Inconsistent order of repositories and pluginRepositories from profiles in settings (regression Maven 3)
  • [MNG-5289] - -Dmaven.repo.local not honored
  • [MNG-5312] - MavenProject.getParent intolerably slow when import scope used heavily
  • [MNG-5313] - Unnecessary DefaultModelBuilder.build overload
  • [MNG-5314] - DefaultModelValidator misuses String.matches
  • [MNG-5336] - Descriptor Reference for settings.xml is incorrect
  • [MNG-5387] - Add ability to replace an artifact in mid-build
  • [MNG-5390] - mvn -rf (no argument) results in NPE
  • [MNG-5395] - logger name for plugins should not be DefaultMavenPluginManager
  • [MNG-5396] - logger name for execution events should not be MavenCli
  • [MNG-5398] - scriptSourceDirectory in superpom is not prefixed with /usr/home/cmsslave/slave15/maven-site-staging/build/trunk/
  • [MNG-5403] - tar.gz release artifacts have wrong permissions on directories
  • [MNG-5418] - Can't activate a profile by checking for the presence of a file in $myProperty
  • [MNG-5430] - use wagon 2.4
  • [MNG-5444] - ModelSource API is not sufficient to resolve project hierachies
  • [MNG-5445] - Missing PathTranslator @Requirement in org.apache.maven.project.interpolation.StringSearchModelInterpolator
  • [MNG-5456] - Maven skips modules and reports success if parallel build encounters java.lang.Error
  • [MNG-5477] - "malformed POM" warning issued when no version in reporting section
  • Improvement:
  • [MNG-4505] - use slf4j to control various logging frameworks
  • [MNG-5181] - New resolution from local repository is very confusing
  • [MNG-5239] - Maven integration developers would like to be able to override the maven logging appender.
  • [MNG-5245] - upgrade default plugins versions
  • [MNG-5338] - Accept a directory with -f/--file
  • [MNG-5350] - improve @threadSafe error message: tell which goal
  • [MNG-5399] - Upgrade version of maven-release-plugin in superpom to 2.3.2
  • [MNG-5400] - Upgrade version of maven-dependency-plugin in superpom to 2.5
  • [MNG-5402] - Better build number for git
  • [MNG-5480] - document in POM descriptor reference how urls are interpolated from parent
  • [MNG-5482] - Catch NoClassDefFoundError org/sonatype/aether
  • New Feature:
  • [MNG-519] - Timestamps on messages
  • [MNG-5306] - for IDE embedding have ways of collecting model problems without failing the process
  • [MNG-5343] - Allow the use of JSR330 annotation in Maven extensions and plugins
  • [MNG-5344] - Allow the SLF4J loggers to be @Injected
  • [MNG-5354] - Integrate Eclipse Aether 0.9.0.M2
  • [MNG-5380] - Cannot preserve whitespace in Maven plugin configuration
  • [MNG-5381] - Restore MavenSession.getRepositoryCache()
  • [MNG-5382] - Add an IT for @Inject used in plugins
  • [MNG-5386] - Dispose of ClassRealms after invocation to prevent out of Permgen errors
  • [MNG-5388] - Restore embedded integration tests
  • [MNG-5391] - Update the default WAR plugin version to avoid version 2.3
  • [MNG-5393] - Look at Sonar's use of SLF4J and Logback
  • [MNG-5397] - Use SLF4J for logging
  • [MNG-5407] - Change MavenITmng1830ShowVersionTest to account for SHA1 as version
  • Task:
  • [MNG-5279] - add CLI options to documentation
  • [MNG-5365] - Replace Aether's deprecated ConfigurationProperties with ConfigUtils
  • [MNG-5372] - remove classes that were added during Maven 3 alpha and beta but were deprecated before 3.0 final release
  • [MNG-5373] - Document the usage and benefits of JSR330
  • [MNG-5374] - Fix transfer listener after the JSR330 merge
  • [MNG-5375] - Document use of SLF4J
  • [MNG-5376] - Account for changes between the Apple and Oracle JDKs on OSX
  • [MNG-5453] - Update Maven 3 build to use Eclipse/Sisu
  • Wish:
  • [MNG-5370] - separate artifact-handlers configuration from plugin bindings to default lifecycle
  • [MNG-5461] - rename _maven.repositories tracking file to _remote.repositories

New in version 3.0.5 (February 25th, 2013)

  • [MNG-5430] - use wagon 2.4

New in version 3.0.4 (November 19th, 2012)

  • 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

New in version 2.2.1 (September 15th, 2009)

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

New in version 2.0.9 (November 5th, 2008)

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