Java 在maven安装后运行脚本
我有一个Maven项目,安装该项目后,我需要运行一个脚本。我想使这个过程自动化。我的猜测是,通过在pom文件中添加一些东西,我可以将其自动化,但到目前为止,我还没有发现如何在安装后运行脚本。我只在maven项目完成安装之前找到了如何运行脚本Java 在maven安装后运行脚本,java,bash,shell,maven,maven-3,Java,Bash,Shell,Maven,Maven 3,我有一个Maven项目,安装该项目后,我需要运行一个脚本。我想使这个过程自动化。我的猜测是,通过在pom文件中添加一些东西,我可以将其自动化,但到目前为止,我还没有发现如何在安装后运行脚本。我只在maven项目完成安装之前找到了如何运行脚本 那么,在Maven项目安装完成后,我如何运行脚本呢?对于纯Maven驱动的方法,您要寻找的答案是exec Maven plugin的exec目标,这个答案适用于: 编辑:OP表示上述内容对他不起作用 替代方法:我刚刚在我自己的项目中尝试了以下方法,它在安装阶
那么,在Maven项目安装完成后,我如何运行脚本呢?对于纯Maven驱动的方法,您要寻找的答案是
exec Maven plugin
的exec
目标,这个答案适用于:
编辑: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>
#/bin/bash
set-o errexit
mvn清洁安装
您可以链接命令
$ mvn clean install && myscript.sh || echo "error."
你为什么不能这样做?这将在正常的maven安装阶段之后进行 编辑:如果在它之前添加maven安装插件,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>
org.apache.maven.plugins
将exec maven插件与指定安装阶段的“执行”配置块结合使用。确保它是在maven安装插件之后,因为插件按顺序运行(在同一阶段内)
(内置/插件)
org.apache.maven.plugins
maven安装插件
2.5.2
org.codehaus.mojo
execmaven插件
1.5.0
安装
执行官
做点什么
/部分/目录
--调试
效果非常好
此版本在安装maven之前运行脚本。我用的是maven3,这与整个Maven模型背道而驰。如果您需要运行的脚本是在Maven安装之后出现的,那么它似乎超出了Maven的责任范围。您最好编写一个同时执行maven和安装后脚本的包装器脚本。感谢您的回复。但是如果可能的话,我想要一个pom配置。链接中的解决方案不起作用,脚本在maven安装之前运行。谢谢你的回复。我把它放在pom的build标签中,脚本在maven安装完成安装之前运行。有一个exec插件,认真地说,不要为了让ant链接到exec而链接到ant。不要仅仅为了做maven插件所做的事情而包含ant配置。这使得您的配置维护包括对Maven和Ant的支持!