在 maven 安装后运行脚本

2022-09-04 22:51:08

我有一个Maven项目,安装项目后,我需要运行一个脚本。我想自动执行此过程。我的猜测是,通过在pom文件中添加一些东西,我可以自动化它,但到目前为止,我还没有找到如何在安装后运行脚本。我只在 maven 项目安装之前才找到如何运行脚本。

那么,如何在 Maven 项目完成安装后运行脚本?


答案 1

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>

答案 2

对于纯粹的 maven 驱动的方法,您正在寻找的答案是 的目标,并且此答案适用:https://stackoverflow.com/a/2008258/3403663execexec-maven-plugin

编辑: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>

推荐