在构建过程中插入自定义构建代码/使用Maven调用Java程序

scr*_*avy 2 java maven

我有一个项目,其中有一个第三方工具(通常是从命令行调用)生成的代码。我想将此工具与我们的Maven构建设置保持一致,即,我想调用它,例如之前maven compile

有没有一种方法可以使用众多的Maven插件之一来执行任意Java程序?我将它插入POM的哪里?

Luc*_*oli 5

您想使用Exec Maven插件,使用它的exec目标,该插件可让您执行外部应用程序。

关于何时将要执行外部应用程序,您必须考虑默认的Maven Build Lifecycle。启动该build过程时,Maven将执行以下(严格顺序的)阶段:

  1. 验证
  2. 编译
  3. 测试
  4. 整合测试
  5. 校验
  6. 安装
  7. 部署

您可以决定在其上面配置运行中的外部应用程序的步骤phase中的元素Exec的Maven插件 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 -->
Run Code Online (Sandbox Code Playgroud)