我在 this POM.xml 中看到,有一些代码使用 exec-maven-plugin
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>IDEInjector-client</id>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.eclipse.che.util.IDEInjectorGenerator</mainClass>
<arguments>
<argument>--rootDir=${generated.sources.directory}</argument>
</arguments>
</configuration>
</execution>
</plugin>
我想知道是否可以从命令行运行它?因为它似乎生成了一些被其他文件使用的java类。
问题:如果它可以运行,我该如何运行它?
最佳答案
Exec Maven Plugin您提到的执行与 generate-sources
阶段绑定(bind),因此它将作为构建的一部分自动调用(例如,经典的 mvn clean install
),因为在 Maven 中phases级联调用,最后一个将自动调用前面的阶段。
但是,您可以通过多种方式调用它:
作为 Maven 构建的一部分,自动调用(Maven 将调用整个构建,因此调用每个阶段,直到
安装
,因此 POM 中列出的任何执行以及相关绑定(bind))mvn clean install
作为特定阶段调用的一部分:Maven 将调用与其绑定(bind)的所有执行(以及任何先前的阶段),因此不仅仅是您提到的特定执行
mvn generate-sources
仅具体执行,自 Maven 3.3.1 ,指定插件、目标和执行 ID 如下:
mvn org.codehaus.mojo:exec-maven-plugin:1.4.0:java@IDEInjector-client
上面的命令将仅(且仅)执行您发布的代码片段。
<小时/>顺便说一句,您可能需要执行整个构建或阶段才能达到您的目的。一般来说,这样的生成并不意味着单独调用(甚至不是每个阶段)。因此,我的假设是,您只需要运行整个 Maven 构建,并且作为其一部分并如上所述,Maven 将处理此源代码生成以及 POM 中已预见的构建内容。
关于java - 如何从命令行运行这个 Maven 插件任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132969/