Maven Archetype Plugin - 如何使用不包含 pom.xml 的部分原型?

2024-03-19

我们想创建一个部分原型来添加custom-pom.xml以及其他资源到现有项目中。然后,自定义 pom 将在生成的项目中使用mvn -f custom-pom.xml.

因此,我们的原型包含一个src/main/resources/archetype-resources/osgi-pom.xml,但不包含pom.xml在同一目录中。

We used archetype:generate适当地参数化以在现有项目上运行此原型。这会产生:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) on project standalone-pom: org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates: Unable to find resource 'archetype-resources/pom.xml' -> [Help 1]

作为测试,我们创建了一个虚拟对象archetype-resources/pom.xml然后重新运行generate目标。这会产生:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) on project standalone-pom: Don't override file /tmp/archetype/fabric-rf-server/pom.xml -> [Help 1]

We saw 这个例子 http://www.avajava.com/tutorials/lessons/how-do-i-create-an-archetype-that-can-run-on-an-existing-project.html其中没有archetype-resources/pom.xml。然而,我们正在使用 Archetype 2.0x 标准,这可能就是为什么该策略适用于该作者而不是我们自己。

我们该如何解决这个问题呢?部分原型是否不适合将资源插入现有 Maven 项目 - 该项目必须是非 Maven 项目吗?

我们已经搜遍了Maven Archetype 插件 2.2 文档 http://maven.apache.org/archetype/maven-archetype-plugin/index.html但几乎没有提及部分原型及其特殊行为。


事实证明,OP 中列出的第二条错误消息是由于 POM 属性冲突(artifactId, groupId and version)。将这些从archetype-resources/pom.xml解决了这个问题。

部分原型实际发生的情况是现有项目的 POM 与原型中的 POM 合并。所以这个属性冲突导致合并失败。

我们确定在探索后应该进行合并源代码 http://maven.apache.org/archetype/archetype-common/xref/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven Archetype Plugin - 如何使用不包含 pom.xml 的部分原型? 的相关文章

随机推荐