2016-08-22 120 views
1

我有一個Maven項目,安裝項目後我需要運行一個腳本。我想讓這個過程自動化。我的猜測是,通過添加一些東西在POM文件中我可以自動化這個,但到目前爲止我還沒有找到安裝後如何運行腳本。我只發現如何在maven項目完成安裝之前運行腳本。在maven安裝後運行腳本

那麼,如何在Maven項目完成安裝後運行腳本?

+0

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

+0

這個版本的maven運行前的腳本安裝。我使用maven3。 – Dorin

+0

這種違背整個Maven模型。如果您需要運行的腳本是在Maven安裝之後發佈的,那麼它似乎可能超出了Maven的責任範圍。你最好編寫一個執行maven和你的安裝後腳本的包裝腳本。 – rmlan

回答

0

對於純粹的Maven驅動的方法,你要尋找的答案是exec-maven-pluginexec目標,這個答案適用於:https://stackoverflow.com/a/2008258/3403663

編輯:OP表示上述對他不起作用。

替代方法:我只是在我自己的項目中嘗試了以下內容,並且在部署工件之後在安裝階段的最後階段執行了ls

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

否則,你總是可以只包住整個事情的腳本:

#!/bin/bash 

set -o errexit 

mvn clean install 
<your other commands here> 
+0

鏈接解決方案無效,該腳本在maven安裝前運行。感謝您的回覆。 – Dorin

0

你可以連續使用命令

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

感謝您的回覆。但是我想要一個pom配置,如果這是可行的。 – Dorin

0

爲什麼你不能這樣做這個?這將在正常的Maven安裝階段之後進行。

編輯:如果你在它之前添加maven-install-plugin,maven會按照它們在pom中的順序運行。

<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> 

來源:maven-antrun-plugin

+0

我試着把它放在pom的build標記中,並在maven安裝完成之前運行腳本。 – Dorin

+1

有一個EXEC插件,嚴重不要鏈接到螞蟻有螞蟻鏈執行。 –

1

使用http://www.mojohaus.org/exec-maven-plugin/ EXEC-行家-插件,連同 「執行」 配置塊,指定安裝相位。請確保它是後您的Maven的安裝,插件作爲插件,以便在運行(在同一階段內)

(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

不要包含ant配置只是爲了執行maven插件。這使得您的配置維護包括對Maven和Ant的支持! –