Como vincular mojos de plug-in (objetivos) a algumas fases do ciclo de vida padrão?

Minhasplugin maven personalizado tem três objetivos (mojos):

convert atribuído à fase padrão:process-test-resourcesgenerateStubs atribuído à fase padrão:packagegenerateTests atribuído à fase padrão:generate-test-sources

Como ligar esses três mojo afase padrão do ciclo de vida, para que o usuário possa simplesmente usar o plug-in sem configuração especial e quaisquer alterações no projetopackaging?

O usuário deve simplesmente adicionar:

<plugin>
    <groupId>io.codearte.accurest</groupId>
    <artifactId>accurest-maven-plugin</artifactId>
    <extensions>true</extensions>
</plugin>

ao invés 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>

Eu posso conseguir isso comcomponents.xml como abaixo, mas isso requer alguns hacks feios (especificando a fase não existente -ugly-fix) e não tenho certeza se esta solução está funcionando em todos os 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>

Isso está correto? Existe melhor maneira de fazer essa configuração?

Mais Informações:

Trabalhandocomponents.xml.Projeto de amostra que está usando esta configuração:https://github.com/mariuszs/gs-rest-service-accurest

questionAnswers(2)

yourAnswerToTheQuestion