Frage

Wenn ich ein Plugin in der definiereu003Cbuild> Tag und möchte dies in meinem Site -Befehl verwenden. Wie mache ich das? Muss ich das Plugin im Inneren definierenu003Creporting> Tag noch einmal?

Und wie wäre es mit der Konfiguration, die ich wahrscheinlich im Build -Tag gemacht habe und auch am Berichts -Tag stattfinden möchte? (Ich möchte beispielsweise keinen Speicherort einer Konfigurationsdatei zweimal angeben, nur um ein Plugin in 2 Lebenszyklen zu verwenden.)

Als Beispiel: Ich definiere mein CheckStyle -Plugin im Build -Tag und beugt einen benutzerdefinierten Ort für die Verwendung der Regeln. Ich mache das, weil die Regeln in einem Glas gepackt sind, damit ich es als Abhängigkeit definieren kann. Dies wäre nicht möglich, wenn ich es im Berichts -Tag mache. Aber ich muss dieses Plugin auch im Berichts -Tag verwenden, damit Surfire einen Bericht für Checkstyle erstellen kann. Daher muss ich das Plugin auch innerhalb des Berichts -Tags definieren.

Vielleicht mache ich hier etwas völliges falsch, aber ich sehe nicht, wie ich es anders machen kann. Was ich nicht mag, ist, dass ich 1 Plugin zweimal in meinem POM (im Build -Tag- und Berichts -Tag) habe.

Ich hoffe, jemand kann überprüfen, ob meine Lösung in Ordnung ist oder mir einen Rat geben kann, wie es besser geht.

Danke

Kuku

War es hilfreich?

Lösung

Ein Maven -Plugin ist in einer bestimmten Lebenszyklusphase in der Regel an die Ausführung gebunden, wenn Sie es definieren. Das Plugin selbst gibt an, welche Lebenszyklusphase dies ist. Sie können dies jedoch ändern, wenn Sie über besondere Bedürfnisse verfügen.

Wenn Sie über einen Multimodul-Build verfügen, können Sie eine Reihe von Plugins mit allen in einem gemeinsamen Eltern-POM erforderlichen Parametern definieren. Dies wird normalerweise für jedes Untermodul im Build ausgeführt. Wenn Sie nicht möchten, dass dies geschieht, können Sie es (im übergeordneten Pom) wie folgt definieren:

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>true</skip>
       </configuration>
   ... More plugin cofniguration stuff ...
 </plugin>

Wenn Sie in einem oder mehreren verschachtelten Moudules dieses Plugin aktivieren möchten, können Sie einfach sagen:

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
            <skip>false</skip>
       </configuration>
   ... Maybe Configuration ....
 </plugin>

In diesem speziellen Modul. Sie können wählen, ob Sie die Standardparameter neu konfigurieren möchten, die aus der übergeordneten Definition geerbt werden oder nicht.

Ich denke, das ist es, wonach du suchst?

Andere Tipps

Zusätzlich zur Antwort von Krosenvold können Sie die Konfiguration auch minimieren, indem Sie ein Plugin in der Deklaration deklarieren <pluginManagment> Abschnitt, vielleicht bei Ihnen oberste Pom in der Erbschaftskette, und dann kannst du Lassen Sie die Version des Plugins an allen anderen Stellen aus.

Elternpom:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-1</version>
        </plugin>
    </plugins>
<pluginManagement>

Kinderpom:

<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
    </plugin>
</plugins>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top