Meine custom maven plugin haben drei Tore (Mojos):Wie binden Sie Plugin-Mojos (Ziele) an wenige Phasen des Standardlebenszyklus an?
convert
zur Standard Phase zugeordnet:process-test-resources
generateStubs
auf Standard Phase zugeordnet:package
generateTests
auf Standard Phase zugeordnet:generate-test-sources
Wie bindet man diese drei mojo an default lifcycle phase, so kann der Benutzer das Plugin einfach ohne verwenden spezielle Konfiguration und Änderungen am Projekt packaging
?
Benutzer sollten einfach hinzufügen:
<plugin>
<groupId>io.codearte.accurest</groupId>
<artifactId>accurest-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
statt
<plugin>
<groupId>io.codearte.accurest</groupId>
<artifactId>accurest-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>convert</goal>
<goal>generateStubs</goal>
<goal>generateTests</goal>
</goals>
</execution>
</executions>
</plugin>
Ich kann dies wie unten mit components.xml
erreichen, aber dies erfordert einige hässlichen Hacks (specifing nicht vorhandene Phase - ugly-fix
) und I bin mir nicht sicher, ob diese Lösung in allen Fällen funktioniert.
<component-set>
<components>
<component>
<role>org.apache.maven.lifecycle.Lifecycle</role>
<implementation>org.apache.maven.lifecycle.Lifecycle</implementation>
<role-hint>accurest</role-hint>
<configuration>
<id>accurest</id>
<phases>
<phase>ugly-fix</phase> // plugin fail without this
</phases>
<default-phases>
<process-test-resources>
io.codearte.accurest:accurest-maven-plugin:${project.version}:convert
</process-test-resources>
<generate-test-sources>
io.codearte.accurest:accurest-maven-plugin:${project.version}:generateTests
</generate-test-sources>
<package>
io.codearte.accurest:accurest-maven-plugin:${project.version}:generateStubs
</package>
</default-phases>
</configuration>
</component>
</components>
</component-set>
Ist das korrekt? Ist eine solche Konfiguration besser?
Weitere Informationen:
- Arbeiten components.xml.
- Beispielprojekt, das diese Konfiguration verwendet: https://github.com/mariuszs/gs-rest-service-accurest
Das sieht immer noch nach Hack aus – MariuszS