【问题标题】:How to integrate a maven project with parent pom as module?如何将 maven 项目与父 pom 集成为模块?
【发布时间】:2015-08-02 10:36:51
【问题描述】:

我想使用父 maven 项目/聚合器来构建我的项目和我在源根目录中作为 git 子模块的依赖项,例如

aggregator pom.xml
 - dependency pom.xml
 - project pom.xml

我天真地从 GNU C/C++ 项目中改编了这个布局,例如 coreutils,它只是将依赖项作为子模块检出,并将它们与项目状态/提交一起更新为兼容的提交。

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 声明中的东西(makemake-dependents 目标)(错误Couldn't find project [dependency] in reactor; make sure you specified the correct group:artifactId)。

我使用的是 maven 3.3.1。

【问题讨论】:

    标签: git maven module pom.xml


    【解决方案1】:

    是 pom 中的父指令肯定会阻止项目被用作 maven 模块

    没有。最后,父级只是用来继承东西,它可以引用任何父级。在多模块项目中,父母和孩子相互指向(孩子指父母,父母将孩子定义为模块)。 另一方面:您可能想知道为什么将任何项目用作模块是一个问题。聚合器 pom 的作者可能是有原因的。

    可以在构建有效模型时遇到一些问题,或者POM的[dependency] 'parent.relativePath'指向[aggreator]而不是org.sonatype.oss:oss-parent,请验证你的项目结构被忽略?

    不应忽略,必须正确设置,即在父级中使用<relativePath></relativePath>(空字符串)。

    【讨论】:

    • 但是如果指定了parent,我会得到Some problems were encountered while building the effective model for [dependency] 'parent.relativePath' of POM [dependency] points at [aggreator] instead of org.sonatype.oss:oss-parent, please verify your project structure。这是我想要避免的。
    • 默认的相对路径是../pom.xml。在您的情况下,将 relativePath 设置为空字符串。见maven.apache.org/ref/3.3.3//maven-model/maven.html#class_parent
    • 这正是我正在寻找的答案。我已经把功劳给你了,希望你能做出相应的修改。
    • “在多模块项目中,父母和孩子相互指向(孩子指父母,父母将孩子定义为模块)”可以但不一定如此.见POM Reference, Inheritance v. Aggregation“但是,尽管 POM 项目、聚合器项目和父项目不是同一个项目,不应混淆。POM 项目可能继承自 - 但不一定有 - 任何它聚合的模块。相反,POM 项目可能聚合不继承自它的项目。”
    猜你喜欢
    • 2010-12-31
    • 2013-06-12
    • 2020-10-07
    • 2013-02-23
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多