¿Cómo enlazar plugins mojos (objetivos) a algunas fases del ciclo de vida predeterminado?
Miplugin maven personalizado tiene tres objetivos (mojos):
convert
asignado a la fase predeterminada:process-test-resources
generateStubs
asignado a la fase predeterminada:package
generateTests
asignado a la fase predeterminada:generate-test-sources
Cómo unir estos tres mojo afase de ciclo de vida predeterminada, por lo que el usuario puede simplemente usar el complemento sin una configuración especial y cualquier cambio en el proyectopackaging
?
El usuario simplemente debe agregar:
<plugin>
<groupId>io.codearte.accurest</groupId>
<artifactId>accurest-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
en lugar de
<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>
Puedo lograr esto concomponents.xml
como a continuación, pero esto requiere algunos trucos feos (especificando la fase no existente -ugly-fix
) y no estoy seguro si esta solución funciona en todos los casos.
<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>
¿Es esto correcto? ¿Es la mejor manera de hacer esa configuración?
Más información:
Trabajandocomponents.xml.Proyecto de muestra que utiliza esta configuración:https://github.com/mariuszs/gs-rest-service-accurest