Test the differences of behavior of Maven Extension APIs between Plexus and JSR-330/Sisu
Maven Extension API | Maven Event | Extension loading mechanism | |||
---|---|---|---|---|---|
${maven.home}/lib/ext | mvn -Dmaven.ext.class.path= | pom.xml's <extensions> | .mvn/extensions.xml | ||
JSR330 | AbstractExecutionListener | 🔴 | 🔴 | 🔴 | 🔴 |
JSR330 | AbstractMavenLifecycleParticipant#afterSessionStart | 🟢 | 🟢 | 🔴 | 🟢 |
JSR330 | AbstractMavenLifecycleParticipant#afterProjectsRead | 🟢 | 🟢 | 🟢 | 🟢 |
JSR330 | AbstractMavenLifecycleParticipant#afterSessionEnd | 🟢 | 🟢 | 🟢 | 🟢 |
JSR330 | AbstractEventSpy#init | 🟢 | 🟢 | 🔴 | 🟢 |
JSR330 | AbstractEventSpy#onEvent | 🟢 | 🟢 | 🔴 | 🟢 |
JSR330 | AbstractEventSpy#close | 🟢 | 🟢 | 🔴 | 🟢 |
Plexus | AbstractExecutionListener | 🔴 | 🔴 | 🔴 | 🔴 |
Plexus | AbstractMavenLifecycleParticipant#afterSessionStart | 🟢 | 🟢 | 🔴 | 🟢 |
Plexus | AbstractMavenLifecycleParticipant#afterProjectsRead | 🟢 | 🟢 | 🟢 | 🟢 |
Plexus | AbstractMavenLifecycleParticipant#afterSessionEnd | 🟢 | 🟢 | 🟢 | 🟢 |
Plexus | AbstractEventSpy#init | 🟢 | 🟢 | 🔴 | 🟢 |
Plexus | AbstractEventSpy#onEvent | 🟢 | 🟢 | 🔴 | 🟢 |
Plexus | AbstractEventSpy#close | 🟢 | 🟢 | 🔴 | 🟢 |
- Documentation
- The maven-sisu-plugin with
@Named
and@Inject
just generatesMETA-INF/sisu/javax.inject.Named
- When in the past, the
plexus-component-metadata:generate-metadata
did generateMETA-INF/plexus/components.xml
- Don't forget to update
META-INF/maven/extension.xml
, see https://maven.apache.org/ref/3.9.6/maven-core/extension.html