Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在构建期间插入自定义构建代码/使用Maven调用java程序_Java_Maven - Fatal编程技术网

在构建期间插入自定义构建代码/使用Maven调用java程序

在构建期间插入自定义构建代码/使用Maven调用java程序,java,maven,Java,Maven,我有一个项目,其中代码由第三方工具生成(通常从命令行调用)。我希望将此工具与我们的maven构建设置保持一致,也就是说,我希望在maven编译之前调用它 有没有一种方法可以使用众多maven插件之一执行任意Java程序?我将在POM中的何处插入它?使用maven exec插件: <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId

我有一个项目,其中代码由第三方工具生成(通常从命令行调用)。我希望将此工具与我们的maven构建设置保持一致,也就是说,我希望在
maven编译之前调用它

有没有一种方法可以使用众多maven插件之一执行任意Java程序?我将在POM中的何处插入它?

使用maven exec插件:

<build>
  <plugins>
      <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>exec-maven-plugin</artifactId>
             <executions>
                 <execution>
                     <id>exec-one</id>
                     <phase>verify</phase>
                     <configuration>
                         <executable>echo</executable>
                         <arguments>
                             <argument>exec one</argument>
                         </arguments>
                     </configuration>
                     <goals>
                         <goal>exec</goal>
                     </goals>
                 </execution>                     
            </executions>
        </plugin>
  </plugins>

org.codehaus.mojo
execmaven插件
执行一
验证
回声
执行一
执行官

与任何其他插件一样,它应该在POM文件的“build”部分指定,您可以使用它的
exec
目标来执行外部应用程序

关于何时执行外部应用程序,您必须考虑。当您启动
build
过程时,Maven将执行以下(严格有序的)阶段:

  • 证实
  • 编撰
  • 试验
  • 包装
  • 集成测试
  • 核实
  • 安装
  • 部署
  • 您可以通过在Exec Maven Plugin
    executions
    元素中配置
    阶段
    元素来决定在上面哪个步骤运行外部应用程序:

    <!-- Begin of POM -->
    <project>
        ...
        <build>
            <plugins>
                <!-- Begin of Exec Maven Plugin -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                    <executions>
                        <execution>
                            <phase>validate</phase> <!-- Here, for example, validate -->
                            <goals>
                                <goal>exec</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>...</configuration>
                </plugin>
                <!-- Begin of Exec Maven Plugin -->
            </plugins>
        </build>
        ...
    </project>
    <!-- End of POM -->
    
    
    ...
    org.codehaus.mojo
    execmaven插件
    1.2.1
    验证
    执行官
    ...
    ...