我正在开发一个项目,其中代码由第三方工具生成(通常从命令行调用)。我想将此工具与我们的maven构建设置对齐,即我想调用它,例如在maven compile
之前。
有没有办法使用众多maven插件之一执行任意Java程序?我会把它插在POM中?
答案 0 :(得分:3)
您想使用exec
目标,{J}允许您执行外部应用程序。
关于何时要执行外部应用程序,您必须考虑Exec Maven Plugin。当您启动build
进程时,Maven会执行以下(严格排序的)阶段:
您可以通过在 Exec Maven插件 phase
元素中配置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 -->
答案 1 :(得分:2)
使用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文件的“构建”部分中指定