2010-02-12 7 views
8

Aktualisiert auf (hoffentlich) klarstellen: Wenn ein Ziel definiert ist, um während einer bestimmten Phase zu laufen, ist es möglich, das individuelle Ziel zu laufen, ohne durch alle Phasen zu laufen. Mit anderen Worten, wäre es möglich, das antrun:run Ziel (das als Teil der Installationsphase definiert ist) auszuführen, ohne Abhängigkeiten, generate-resources, kompilieren, testen, Paket usw. zu erhalten?Ist es möglich, ein bestimmtes Ziel, das an eine Maven-Phase gebunden ist, auszusondern und auszuführen?

Ich verwende das Antrun-Plugin, um eine Zip-Datei während der Phase package zu erstellen und einige Dateien während der Phase install zu löschen und zu kopieren. Ich verstehe, wie man einzelne Maven Plugin-Ziele ausführt, zum Beispiel: mvn antrun:run. Gibt es jedoch eine Möglichkeit, das Ziel einer bestimmten Ausführung auszuführen? Etwas wie mvn antrun:run:execution-id oder mvn phase:antrun:run?

Grundsätzlich wäre ich nett, wenn ich Maven sagen könnte, nichts anderes zu tun, als die in der Deploy-Phase definierten ant-Aufgaben auszuführen. Es ist ziemlich langwierig, darauf zu warten, dass Maven durch alle Phasen geht, nur um zu überprüfen, ob die Ant-Aufgaben in der Bereitstellungsphase ordnungsgemäß funktionieren.

<executions> 
    <!-- create zip file --> 
    <execution> 
    <id>create-zip</id> 
    <phase>package</phase> 
    <configuration> 
     <tasks> 
    ...create zip... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    <!-- do some other stuff --> 
    <execution> 
    <id>copy-files</id> 
    <phase>install</phase> 
    <configuration> 
     <tasks> 
    ...delete some files, copy some files ... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    </executions> 
+0

Ja, es ist möglich – ant

Antwort

6

Mit anderen Worten wäre es möglich sein, das antrun auszuführen: run goal (welches als Teil der Installationsphase definiert ist), ohne Abhängigkeiten, generate-resources, compiling, testing, package usw. zu bekommen?

Nein, ist es nicht. Während Sie ein Plugin konfigurieren können (mit einem <configuration> Abschnitt unter dem <plugin> Element) und in der Befehlszeile aufrufen, können Sie nicht eine bestimmte ExecutionID (und folglich die <configuration> spezifische für eine <execution>) aufrufen.

Die einzige Lösung in Ihrem Fall wäre das antrun Plugin in einem Profil zu erklären, lassen Sie sich my-profile sagen, den folgenden Teil der Konfiguration zu duplizieren das Plugin in diesem Profil zu konfigurieren:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.3</version> 
    <configuration> 
    <tasks> 
     ... delete some files, copy some files ... 
    </tasks> 
    </configuration> 
</plugin> 

und Anruf mit dem richtigen aktiven Profil:

mvn antrun:run -Pmy-profile 
0

Für Ex:

Wenn Sie Jboss mit Maven ausführen, können Sie die Jboss Konsolenausgabe nicht sehen, aber ich brauche es, so zu zeigen, was ich tat, das ich eine Java-Datei geschrieben, die lesen in server.log (die Ausgabe der Server-Konsole), wie es sich ändert, um die Änderungen anzuzeigen, so dass es scheint, dass die jboss-Konsole tatsächlich angezeigt wird (ein bisschen hack-ish aber funktioniert). So komme ich zur Beantwortung Ihrer Frage, während des Pre-Integration-Tests habe ich ein Java-Ziel ausgeführt, welches mein Java-Programm startet. Hier ist, wie unter Verwendung von Plugin natürlich ausführen:

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
        <execution> 
         <id>console-start</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>java</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <mainClass>org.eclipse.console.Main</mainClass> 
       </configuration> 
      </plugin> 

Sie führen nur die Installation und führt es während der Pre-Integration-Test, aber wenn man nur so etwas wie Java ausführen möchten, verwenden Sie das Plugin auszuführen. Sorry, wenn die Antwort nicht angemessen, ich habe nicht die Geduld haben Ihre Frage im Detail zu lesen, sind meine Arbeitszeiten über .. cheers

Verwandte Themen