我有一个Maven项目,在安装项目后我需要运行一个脚本。我想自动化这个过程。我的猜测是,通过在pom文件中添加一些东西我可以自动化,但到目前为止我还没有找到如何在安装后运行脚本。我只找到了在maven项目完成安装之前如何运行脚本。
那么,如何在Maven项目完成安装后运行脚本?
答案 0 :(得分:2)
使用http://www.mojohaus.org/exec-maven-plugin/ exec-maven-plugin,以及"执行"配置块,指定安装阶段。确保它在maven-install-plugin之后,因为插件按顺序运行(在同一阶段内)
(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>
答案 1 :(得分:0)
对于纯粹由maven驱动的方法,您正在寻找的答案是exec
的{{1}}目标,此答案适用:https://stackoverflow.com/a/2008258/3403663
编辑:OP表示上述内容对他不起作用。
替代方法:我刚在自己的项目中尝试了以下内容,并且在部署工件之后,在安装阶段的最后执行exec-maven-plugin
。
ls
否则,您可以随时将整个内容包装在脚本中:
mvn clean install exec:exec -Dexec.executable="/bin/ls" -Dexec.args="/etc"
答案 2 :(得分:0)
您可以链接命令
function uploadPDF() {
var docViewer = readerControl.docViewer;
var options = {
xfdfString: docViewer.getAnnotationManager().exportAnnotations()
};
var doc = docViewer.getDocument();
doc.getFileData(options).then(function(data) {
var arr = new Uint8Array(data);
var blob = new Blob([arr], {
type: 'application/pdf'
});
// upload blob here
});
}
答案 3 :(得分: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>