Wie binde ich Plug-in-Mojos (Ziele) an einige Phasen des Standardlebenszyklus?

Mycustom Maven Plugin habe drei Ziele (mojos):

convert der Standardphase zugeordnet:process-test-resourcesgenerateStubs der Standardphase zugeordnet:packagegenerateTests der Standardphase zugeordnet:generate-test-sources

Wie binde ich diese drei Mojo andefault lifcycle phase, so dass der Benutzer das Plugin einfach ohne spezielle Konfiguration und Änderungen an project @ verwenden kapackaging?

Benutzer sollte einfach hinzufügen:

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

Anstatt vo

<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 das mit @ erreichcomponents.xml wie unten, aber dies erfordert einige hässliche Hacks (Angabe nicht vorhandener Phase -ugly-fix) und ich bin 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 richtig? Ist eine solche Konfiguration besser?

Mehr Informationen

Arbeiten components.xml.Beispielprojekt, das diese Konfiguration verwendet:https: //github.com/mariuszs/gs-rest-service-accures

Antworten auf die Frage(4)

Ihre Antwort auf die Frage