java - 如何从命令行运行这个 Maven 插件任务?

标签 java maven plugins command-line

我在 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/

相关文章:

java - 使用 @EntityManager 保存 @Entity 不起作用

java - IntelliJ Maven 集成

plugins - 无法在 NetBeans 中配置 FindBugs、Checkstyle 或 PMD

java - Maven 子项目构建失败

gradle - 无法从HTTP URL应用Gradle脚本插件

maven - 如何使用maven签署jar,但更改jdk?

java - 在 Fragment 中显示 RecyclerView

java - 如何让蓝牙始终可被发现

java - 在 Java 邮件中嵌入图像 - CID 不工作

maven - Maven+Surefire+Testng的顺序 - BeforeClass, BeforeTest, Test, Test, AfterTest, AfterClass