我需要在从原型生成项目后执行目标。 maven-archetype-plugin支持"目标"参数。我可以从命令行成功完成此操作:
mvn archetype:generate -Dgoals=foo-xyz:do-xyz
但是当我将此参数添加到原型项目中的POM文件配置时,它被完全忽略:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
<configuration>
<goals>foo-xyz:do-xyz</goals>
</configuration>
</plugin>
我想在插件上打开问题之前确保我没有做些蠢事。 &#34;目标&#34;是一个String参数。不是集合也不是数组。插件的源代码通过在逗号上拆分来创建一个数组。查看代码后,我没有看到为什么它会占用命令行值而不是配置值。我唯一可以想象的是我的配置有问题或模块中的错误除了原型的Mojo:generate。
答案 0 :(得分:1)
抱歉,收回此前发布的答案。这是垃圾,没有用:(
我想,我不得不承认这个问题没有很好的解决办法。考虑一下,这是有道理的:当从CLI执行archetype:generate
时,Maven使用与原型项目本身的POM完全无关的独立pom:
[INFO] ----------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ----------------------------------------
在 maven-archetype-plugin 执行之前很久就会发生这种情况。所以我认为原型项目POM的配置没有合理的方式可以影响archetype:generate
直接使用的实际POM。
答案 1 :(得分:0)
正如@misberner所怀疑的那样,原型插件似乎忽略了原型项目中的POM设置。