2016-08-22 5 views
1

Ich habe ein Maven-Projekt und nachdem ich das Projekt installieren, muss ich ein Skript ausführen. Ich möchte diesen Prozess automatisieren. Meine Vermutung ist, dass ich das durch das Hinzufügen von etwas in der Pom-Datei automatisieren könnte, aber bis jetzt habe ich nicht gefunden, wie man ein Skript nach der Installation ausführt. Ich habe nur gefunden, wie man ein Skript ausführt, bevor das Maven-Projekt die Installation beendet hat.Führen Sie ein Skript nach Maven installieren

Also, wie kann ich ein Skript nach einem Maven-Projekt als abgeschlossene Installation ausführen?

+0

http://stackoverflow.com/a/2008258/4796021 –

+0

Diese Version läuft das Skript vor Maven Installieren. Ich benutze maven3. – Dorin

+0

Diese Art von geht gegen das ganze Maven-Modell. Wenn das Skript, das Sie ausführen müssen, nach der Installation von Maven kommt, ist es wahrscheinlich, dass es außerhalb des Zuständigkeitsbereichs von Maven liegt. Sie schreiben besser ein Wrapper-Skript, das sowohl maven als auch Ihr Post-install-Skript ausführt. – rmlan

Antwort

0

Für eine rein Maven orientierten Ansatz, die Antwort nach dem Sie suchen ist die exec Ziel exec-maven-plugin, und diese Antwort gilt: https://stackoverflow.com/a/2008258/3403663

EDIT: OP zeigt oben das ist für ihn nicht.

Alternativer Ansatz: Ich habe gerade folgendes in meinem eigenen Projekt versucht, und es führt am Ende der Installationsphase ls aus, nachdem Artefakte bereitgestellt wurden.

mvn clean install exec:exec -Dexec.executable="/bin/ls" -Dexec.args="/etc"

Andernfalls könnten Sie immer wickeln nur das Ganze in einem Skript:

#!/bin/bash 

set -o errexit 

mvn clean install 
<your other commands here> 
+0

Die Lösung von der Verknüpfung funktioniert nicht, das Skript wird vor der Installation von Maven ausgeführt., Vielen Dank für Ihre Antwort. – Dorin

0

Sie können Kette die Befehle

$ mvn clean install && myscript.sh || echo "error." 
+0

Danke für Ihre Antwort. Aber ich möchte eine Pom-Konfiguration, wenn das möglich ist. – Dorin

0

Warum können Sie nicht etwas tun, wie Dies? Dies wird nach der normalen Installationsphase von maven geschehen.

EDIT: Wenn Sie das Maven-Install-Plugin davor hinzufügen, wird maven jedes in der Reihenfolge laufen, die sie in der Pom sind.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <version>2.5.2</version> 
    </plugin> 
    <plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
     <phase>install</phase> 
     <configuration> 
      <tasks> 
      <exec 
       dir="${project.basedir}" 
       executable="${project.basedir}/src/main/sh/do-something.sh" 
       failonerror="true"> 
       <arg line="arg1 arg2 arg3 arg4" /> 
      </exec> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Quelle: maven-antrun-plugin

+0

Ich habe versucht, dies in das Build-Tag von Pom und das Skript vor der Maven Installation abgeschlossen Installation installiert. – Dorin

+1

Es gibt ein exec-plugin, ernsthaft nicht zu ameise ketten, um ant-kette zu exec zu haben. –

1

Verwenden der http://www.mojohaus.org/exec-maven-plugin/ exec-maven-Plugin, in Verbindung mit einem "Ausführungen" Konfigurationsblock, der die Installationsphase angibt. Stellen Sie sicher, dass es nach dem Maven-install-Plugin als Plugins, um (innerhalb der gleichen Phase) läuft werden

(in build/plugins) 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <version>2.5.2</version> 
    </plugin> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.5.0</version> 
    <executions> 
     <execution> 
     <phase>install</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>do-something.sh</executable> 
      <workingDirectory>/some/dir</workingDirectory> 
      <arguments> 
      <argument>--debug</argument> 
      <argument>with_great_effect</argument> 
      </arguments> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

Enthalten Sie keine Ameisen-Konfigurationen, nur um Dinge zu tun, für die es Maven-Plugins gibt. Das beinhaltet, dass Ihre Konfigurationswartung sowohl Maven als auch Ant unterstützt! –

Verwandte Themen