Ich arbeite an einem Maven-Plugin zum Erstellen eines benutzerdefinierten Pakettyps. Ich habe es packen und eine Strafe erstellen. Ich habe jedoch ein vorheriges Ziel, das einen Bibliotheksordner erstellt.Maven 3.0 Plugin - Wie setze ich ein Ziel, das von einem anderen Ziel abhängt
Ich möchte mein Build (Paket) Ziel, um sicherzustellen, dass das vorherige Lib Ziel wurde bereits zuerst ausgeführt. Wie kann ich das machen?
erklärte die Build-Klasse wie folgt:
@Mojo(name = "build", defaultPhase = LifecyclePhase.PACKAGE,
requiresProject = true)
@Execute(goal="lib", phase = LifecyclePhase.PREPARE_PACKAGE)
public class BuildComponent extends AbstractComponentMojo
und die lib-Klasse wie folgt:
@Mojo(name = "lib", defaultPhase = LifecyclePhase.PREPARE_PACKAGE,
requiresProject = true)
@Execute(goal="compile", phase = LifecyclePhase.COMPILE)
public class LibComponent extends AbstractLibMojo
Das funktionierte so werden beide Ziele laufen. Ich würde gerne mvn groupId:build
statt mvn groupId:lib groupId:build
anrufen, um einen erfolgreichen Build zu haben.
Fehle ich einige Annotationsverarbeitung zur Laufzeit? Von dem, was ich gelesen habe, denke ich, brauche ich einen benutzerdefinierten Lebenszyklus, um das zu funktionieren. Ich habe die Maven Lifecycle Extensions example gefunden, aber ich bin mir nicht sicher, wie man es benutzt, um Ziele oder Phasen in den Lebenszyklusmaven zu injizieren, der sich aufbaut und anfängt.
Warum definieren Sie ein '@ Execute'? – khmarbaise
@khmarbaise, ich dachte, es wäre ein Weg, ein Ziel zu definieren, das zuerst laufen würde. – Raystorm