如何将 maven 项目与父 pom 作为模块集成?
How to integrate a maven project with parent pom as module?
我想使用父 Maven project/aggregator 来构建我的项目和我在源根目录中作为 git
子模块的依赖项,例如
aggregator pom.xml
- dependency pom.xml
- project pom.xml
我天真地从 GNU C/C++ 项目中改编了这个布局,比如 coreutils
,它只是将依赖项作为子模块检出,并将它们更新为与项目 state/commit 一起兼容的提交。
maven 的问题是 pom.xml
依赖项中有一个 parent
指令,删除它肯定需要修改依赖项,这不是此设置的目的。因此,以非常不同的方式提出的同一个问题是: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 模块而只是 git
子模块并编写两行构建脚本,在源根目录和依赖项子目录中调用 mvn
。
我尝试使用 reactor
插件,但它根本无法构建任何未包含在 module
声明中的内容(make
和 make-dependents
目标)(错误Couldn't find project [dependency] in reactor; make sure you specified the correct group:artifactId
)。
我正在使用 maven 3.3.1。
Is a parent directive in a pom definitely preventing a project from being used as a maven module
没有。最后一个 parent 只是用来继承东西,它可以引用任何 parent。在多模块项目中 parents 和 children 相互指向(child 指的是一个 parent,parent 将 child 定义为一个模块).
另一方面:您可能想知道为什么将任何项目用作模块都是一个问题。聚合器 pom 的编写者可能有它的原因。
Can the warning 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 be ignored?
不应该忽略,必须正确设置,即在parent.
中使用<relativePath></relativePath>
(空字符串)
我想使用父 Maven project/aggregator 来构建我的项目和我在源根目录中作为 git
子模块的依赖项,例如
aggregator pom.xml
- dependency pom.xml
- project pom.xml
我天真地从 GNU C/C++ 项目中改编了这个布局,比如 coreutils
,它只是将依赖项作为子模块检出,并将它们更新为与项目 state/commit 一起兼容的提交。
maven 的问题是 pom.xml
依赖项中有一个 parent
指令,删除它肯定需要修改依赖项,这不是此设置的目的。因此,以非常不同的方式提出的同一个问题是: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 模块而只是 git
子模块并编写两行构建脚本,在源根目录和依赖项子目录中调用 mvn
。
我尝试使用 reactor
插件,但它根本无法构建任何未包含在 module
声明中的内容(make
和 make-dependents
目标)(错误Couldn't find project [dependency] in reactor; make sure you specified the correct group:artifactId
)。
我正在使用 maven 3.3.1。
Is a parent directive in a pom definitely preventing a project from being used as a maven module
没有。最后一个 parent 只是用来继承东西,它可以引用任何 parent。在多模块项目中 parents 和 children 相互指向(child 指的是一个 parent,parent 将 child 定义为一个模块). 另一方面:您可能想知道为什么将任何项目用作模块都是一个问题。聚合器 pom 的编写者可能有它的原因。
Can the warning 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 be ignored?
不应该忽略,必须正确设置,即在parent.
中使用<relativePath></relativePath>
(空字符串)