我想使用父maven项目/聚合器来构建我的项目以及我在源根目录中作为git
子模块的依赖项,例如
aggregator pom.xml
- dependency pom.xml
- project pom.xml
我天真地从GNU C / C ++项目中调整了这个布局,比如coreutils
,它只是将依赖关系作为子模块检出,并将它们与项目状态/提交一起更新为兼容的提交。
maven的问题是依赖项parent
中有pom.xml
指令,删除它肯定需要修改依赖项,这不是此设置的意图。所以,同样的问题是一个非常不同的方式: pom中的parent
指令肯定会阻止项目被用作maven模块吗?。可以忽略警告Some problems were encountered while building the effective model or [dependency] 'parent.relativePath' of POM [dependency] points at [aggreator] instead of org.sonatype.oss:oss-parent, please verify your project structure
吗?
我知道这不是maven的预期工作流程(考虑到本地缓存),并且可以通过使依赖不是maven模块而只是{{1}来轻松实现} submodule并编写一个两行构建脚本,在源根目录和dependency子目录中调用git
。
我尝试使用mvn
插件,但它根本不构建reactor
声明中未包含的任何内容(module
和make
目标)(错误make-dependents
)。
我正在使用maven 3.3.1。
答案 0 :(得分:1)
pom中的父指令肯定会阻止项目用作maven模块
没有。最后,父母只是用来继承东西,它可以引用任何父母。在多模块项目中,父项和子项相互指向(子项指父项,父项将子项定义为模块)。 另一方面:您可能想知道为什么任何项目用作模块都是一个问题。聚合器pom的作者可能有理由。
警告是否可以在构建有效模型时遇到一些问题或[依赖]' parent.relativePath' POM [dependency]指向[aggreator]而不是org.sonatype.oss:oss-parent,请验证您的项目结构是否被忽略?
不应忽略它,必须正确设置,即在父级中使用<relativePath></relativePath>
(空字符串)。