Java Maven插件执行ID
我有一个关于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
<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