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>
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" ); }