在maven安装后运行脚本

时间:2016-08-22 20:11:24

标签: java bash shell maven maven-3

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

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

4 个答案:

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

来源:maven-antrun-plugin