有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在maven安装后运行脚本

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

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


共 (4) 个答案

  1. # 1 楼答案

    你可以把命令串起来

    $ mvn clean install && myscript.sh || echo "error."
    
  2. # 2 楼答案

    你为什么不能这样做?这将在正常的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>
    

    资料来源:maven-antrun-plugin

  3. # 3 楼答案

    http://www.mojohaus.org/exec-maven-plugin/exec maven插件与指定安装阶段的“executions”配置块结合使用。确保它是在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>
    
  4. # 4 楼答案

    对于纯maven驱动的方法,您要寻找的答案是execexec-maven-plugin目标,这个答案适用于: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>