在不构建子模块的情况下安装父 POM
Posted
技术标签:
【中文标题】在不构建子模块的情况下安装父 POM【英文标题】:Install parent POM without building Child modules 【发布时间】:2012-03-19 00:27:36 【问题描述】:我在一个 Maven 项目中有一个父 POM,结构如下:
parent
|
---------------
| |
child1 child2
我想在本地 REPO 中安装 "parent" 的 POM,以允许 child1 进行一些我在 dependencyManagement 中所做的更改,但是 我无法进行常规的“全新安装”,因为 “child2” 已损坏且无法构建。
使用 maven 执行此操作的正确方法是(除了转到父 pom 并评论 “child2” 模块)。
【问题讨论】:
【参考方案1】:在 mvn 命令中使用“-N”选项。
来自mvn -h
:
-N,--non-recursive 不要递归到子项目中
【讨论】:
“-N”或“--non-recursive”选项表示不递归到子项目中。【参考方案2】:虽然 Guillaume 确实是正确的并且这是正确的选择,但我个人建议将您的父级保留为单独的模块。
我发现继承的最佳方法如下:
aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml
这样您始终可以只安装父级,mvn clean install
无需额外选项。
您还可以将父级放在聚合器之外,以便在更多项目之间重复使用它。
将父级和聚合器保持为两个独立的东西有很多好处。但最终,您会选择最适合您的项目/环境的。
【讨论】:
我在这个问题上苦苦挣扎了好几个小时,发现有些项目是这样做的,比如 apache sling、JackRabbit 和 Artifactory。 它将 maven 模块继承(依赖项、属性等)与批处理构建(子模块)隔离开来。 这被认为是最佳做法吗?关于这种方法的任何博客或其他内容? @ArtB 你有没有偶然发现这样的文章? @MaximilianSchulz:正如他们所说,没有完美的世界......这只是一种选择。以上是关于在不构建子模块的情况下安装父 POM的主要内容,如果未能解决你的问题,请参考以下文章
如何在不渲染子组件的情况下根据子组件大小更改 React 父组件大小?