Maven - Fügen Sie benutzerdefinierte Phase auszuführen Plugin mit anderen Konfigurations

StackOverflow https://stackoverflow.com/questions/3127096

  •  30-09-2019
  •  | 
  •  

Frage

Ich habe zwei Satz von Integrationstests in einem Maven-Projekt - automatische und manuelle Tests. Die manuellen Tests sind wenige, aber langweilig - sie erfordern Ziehen Sie den Stecker von Servern usw. Ich möchte ein separates Ziel für die manuelle Tests erstellen, so dass ich so etwas wie mvn manualtests ausführen können die manuellen Tests auszuführen. Wenn Sie nur einen normalen Maven Build mvn install laufen oder so, sollten die automatischen Tests ausgeführt werden.

Ich habe bereits die manuellen Tests mit der TestNG Anmerkung @Test(groups="manual" kommentiert. Das Ziel ist es nun zwei Konfigurationen des todsichere Plugin, einen zu haben, die automatischen Ausführen von Tests, die an der Testphase des Build-gebunden ist, und man die manuellen Tests ausgeführt wird, die auf eine andere benutzerdefinierte Phase gebunden ist, dass ich auf Anruf manualtests möchte. Es scheint, als ob es nicht möglich ist, eine Ausführung eines Plugins auf eine nicht vorhandene Phase zu binden (das heißt eine, die nicht von Maven vorgegeben ist). Ist es nicht möglich, eigene Phasen zu definieren?

War es hilfreich?

Lösung

Das sollte möglich sein, wenn auch nicht einfach. Erster Schritt:. Blick auf, wie es standardmäßig gemacht wird

Mit dieser Abhängigkeit:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>${maven.version}</version>
</dependency>

die Quellen erhalten und einen Blick auf die components.xml innerhalb META-INF / Plexus haben. da sowohl die Standard-Phasen und die Standard-Lebenszyklus / Phase-Bindungen definiert werden.

erstellen ein Plugin, das überschreibt diese Standard Phasen (in seinen eigenen components.xml) und definieren es als eine Erweiterung

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top