我有一個Maven項目,安裝項目後我需要運行一個腳本。我想讓這個過程自動化。我的猜測是,通過添加一些東西在POM文件中我可以自動化這個,但到目前爲止我還沒有找到安裝後如何運行腳本。我只發現如何在maven項目完成安裝之前運行腳本。在maven安裝後運行腳本
那麼,如何在Maven項目完成安裝後運行腳本?
我有一個Maven項目,安裝項目後我需要運行一個腳本。我想讓這個過程自動化。我的猜測是,通過添加一些東西在POM文件中我可以自動化這個,但到目前爲止我還沒有找到安裝後如何運行腳本。我只發現如何在maven項目完成安裝之前運行腳本。在maven安裝後運行腳本
那麼,如何在Maven項目完成安裝後運行腳本?
對於純粹的Maven驅動的方法,你要尋找的答案是exec-maven-plugin
的exec
目標,這個答案適用於: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>
鏈接解決方案無效,該腳本在maven安裝前運行。感謝您的回覆。 – Dorin
你可以連續使用命令
$ mvn clean install && myscript.sh || echo "error."
感謝您的回覆。但是我想要一個pom配置,如果這是可行的。 – Dorin
爲什麼你不能這樣做這個?這將在正常的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>
我試着把它放在pom的build標記中,並在maven安裝完成之前運行腳本。 – Dorin
有一個EXEC插件,嚴重不要鏈接到螞蟻有螞蟻鏈執行。 –
使用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>
不要包含ant配置只是爲了執行maven插件。這使得您的配置維護包括對Maven和Ant的支持! –
http://stackoverflow.com/a/2008258/4796021 –
這個版本的maven運行前的腳本安裝。我使用maven3。 – Dorin
這種違背整個Maven模型。如果您需要運行的腳本是在Maven安裝之後發佈的,那麼它似乎可能超出了Maven的責任範圍。你最好編寫一個執行maven和你的安裝後腳本的包裝腳本。 – rmlan