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)
Generating descriptors
For performance, Maven doesn't do classpath scanning. Instead Maven expects a descriptor containing all components.
With Maven 3.1.0+ we can switch from plexus-component-metadata to sisu-maven-plugin
pom.xml
<plugin> <groupId>org.eclipse.sisu</groupId> <artifactId>sisu-maven-plugin</artifactId> <version>0.3.4</version> <executions> <execution> <id>index-project</id> <goals> <goal>main-index</goal> <goal>test-index</goal> </goals> </execution> </executions> </plugin>
Testing
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.
PlexusTestcase
In order to make it possible to test with javax.inject in unit tests, one might need to add the following:
@Override protected void customizeContainerConfiguration( ContainerConfiguration configuration ) { configuration.setClassPathScanning( "INDEX" ); }