Most important changes:
- switch from Sonatype Aether to Eclipse Aether ( contains a package change in several Maven APIs)
- support of JSR330 in plugins ( javax.inject)
- drop maven-artifact-transfer. It sole purpose was to make it possible for plugins to support both Sonatype Aether (Maven 3.0.x) and Eclipse Aether (Maven 3.1.0+ and rebranded to Maven Artifact Resolver for Maven 3.5.0+). The extra abstract layer of maven-artifact-transfer only adds complexity and a library that must be maintained. Once everything depends on Maven 3.1.0 we can archive maven-artifact-transfer.
For performance, Maven doesn't do classpath scanning. Instead Maven expects a descriptor containing all components.
In case org.apache.maven.plugin-testing:maven-plugin-testing is used, it should be changed to 3.1.0 to be Maven 3.1.0 compatible.
In order to make it possible to test with javax.inject in unit tests, one might need to add the following: