Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven插件执行ID_Java_Maven_Gwt - Fatal编程技术网

Java Maven插件执行ID

Java Maven插件执行ID,java,maven,gwt,Java,Maven,Gwt,我有一个关于maven插件中执行ID的简单问题 <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <version>2.7.0</version> <executions> <execution> <id>gwt-process

我有一个关于maven插件中执行ID的简单问题

    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.7.0</version>
    <executions>
    <execution>
        <id>gwt-process-resources</id>
        <goals>
            <goal>i18n</goal>
            <goal>generateAsync</goal>
        </goals>
    </execution>
</executions>
org.codehaus.mojo
GWTMaven插件
2.7.0
gwt过程资源
i18n
生成同步
有人能给我解释一下这个行刑ID是干什么的吗?目标是如何触发的?为了执行这两个目标,我可以直接调用“gwt流程资源”吗?如果是,我该怎么做?

的存在只是为了让您能够区分其他执行。执行实际生成时,将显示此标记

您的执行示例将调用您指定的两个目标:
i18n
generateAsync

如果插件未绑定到特定阶段(
流程资源
软件包
安装
等),则不会执行执行。插件的文档应该说明是否是这种情况

您可以使用
标记指定/覆盖默认阶段:

。。。
gwt过程资源
过程资源
i18n
生成同步
...

目标要么触发:

  • 自动(默认阶段隐式或如上所述显式)
  • 按命令行执行:
    mvn:
请注意,虽然执行id必须在POM中单个插件的所有执行中都是唯一的,但它们不必在POM的继承层次结构中是唯一的。合并来自不同POM的相同id的执行。这同样适用于由概要文件定义的执行


这里有一个非常简单的解释:

您不能直接调用执行ID

  mvn gwt-process-resources
将不起作用,因为gwt进程资源只是一个id

如果pom中没有
声明,那么您可能希望查看插件的文档并找到相应的默认阶段。如果您查看以下内容:

  • gwt:i18n默认情况下绑定以生成源
  • gwt:GenerateSync默认绑定到生命周期阶段:生成源
目标是如何触发的?

如果你这样做

mvn compile
=>编译>在maven生命周期中生成源代码
=>maven在gwt:generateAsync之后执行gwt:i18n

=>按照它们在pom.xml中声明的顺序执行,因为它们绑定到某些阶段“生成源”

某些插件(例如编译插件)将在临时文件名中使用“id”。因此,在更改“id”时,请确保不要使用“:”等字符,否则可能会导致格式化有效文件名路径时出现问题。

好的,谢谢您的澄清!我缺少的主要内容是“自动(默认阶段是隐式的……”,“i18n”目标和“generateAsync”如果没有写入pom中,就不会触发。。它们都是触发器,因为它们都有一个默认的执行阶段<代码>i18n。。。。。生成源谢谢:)我们可以给任何自定义名称作为执行id吗?是的,差不多。除非它与同一插件的继承执行中的id匹配,否则在这种情况下,您的执行将覆盖父插件的id。id只是一个字符串,但惯例是用连字符分隔单词。这是一个很好的解释,我的maven知识缺少一些插件目标的“默认绑定”功能:)
mvn compile