New features of Maven 3.9.x:

  • Shared local repository (using advisory file locking, Hazelcast or Redis)
  • Switchable and alternative transports (resolver "native" along with default Wagon) with default switched to native.
  • Chained local repository (for IT isolation between "outer" and "inner" builds)
  • Recording reverse dependency tree tracking information
  • Pluggable checksum algorithms API (is not tied to MessageDigest anymore)
  • Choice of resolver collectors BF along existing DF (parallel POM downloads with BF)
  • Split local repository, plus "workspace" support for branched development
  • Remote repository filtering (see https://github.com/cstamas/rrf-demo)
  • Trusted checksum sources (ability to provide some or all artifact checksums ahead of time)
  • Pluggable artifact resolver post-processor, with "trustedChecksums" implementation (that verifies artifacts on resolve)L makes possible to use "untrusted" local and remote repositories and to end up with "trusted" artifacts.
  • Help with projects maintenance - warnings about deprecated plugins, goals, deprecated parameters, no existing parameters, read only parameters 
  • Add support for "mvn pluginPrefix:version:goal"
  • Profile activation by packaging
  • Fixing Maven finally to be able to use m-install-p/m-deploy-p 3.x
  • JDK 8 as minimum
  • ??? add the rest, these were just from top of my head