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

标签 maven plugins pom.xml archetypes

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

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

我们使用了archetype:generate适本地参数化以在现有项目上运行此原型(prototype)。这会产生:

[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]

我们看到了this example没有archetype-resources/pom.xml .然而,我们使用的是 Archetype 2.0x 标准,这可能是该策略适用于该作者而不适用于我们自己的原因。

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

我们搜索了Maven Archetype plugin 2.2 documentation但几乎没有提到部分原型(prototype)及其特殊行为。

最佳答案

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

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

我们发现在探索 the source code 之后应该进行合并。 .

关于Maven Archetype Plugin - 如何使用不包含 pom.xml 的部分原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121923/

相关文章:

java - 使用 maven 将 JAR 文件打包到 WAR 存档的根目录中

java - 当我尝试将Maven项目部署到tomcat时出现套接字写入错误

java - 使用 maven 进行 eclipse checkstyle 自定义检查

c# - 如何在应用程序运行时发现新的 MEF 部件?

java - 运行tomcat时Manifest主要属性的签名文件摘要无效

java - 如何在 Maven 生成的 jar 中包含特定文件夹?

java - Maven surefire - 在测试之间建立依赖关系

mysql - WordPress将帖子的最后修改日期更改为发布日期(预定的帖子)

plugins - 在 Dynamics CRM 中,是否可以从插件上下文中检查执行顺序?

eclipse - 设置 Xuggler 的初学者指南