我有一个项目,其中有第三方工具生成的代码(通常从命令行调用)。我想将此工具与我们的 maven 构建设置对齐,即我想调用它,例如在maven compile
.
有没有办法使用众多 Maven 插件中的一个来执行任意 Java 程序?我会将它插入到 POM 的什么位置?
您想使用Exec Maven 插件,使用它的exec
目标,它允许您执行外部应用程序。
关于何时执行外部应用程序,您必须考虑默认的 Maven Build Lifecycle。当您启动该build
进程时,Maven 会执行以下(严格排序的)阶段:
您可以通过配置Exec Maven Pluginphase
元素中的元素来决定在上述哪个步骤运行外部应用程序: 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 -->
使用 maven-exec-plugin:
<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>
就像任何其他插件一样,它应该在 POM 文件的“构建”部分中指定