具有自己的 SCM 布局的 Maven 多模块 - 如何构建标签?
Posted
技术标签:
【中文标题】具有自己的 SCM 布局的 Maven 多模块 - 如何构建标签?【英文标题】:Maven multimodule with own SCM layout - how to build the tag? 【发布时间】:2013-05-24 00:13:03 【问题描述】:假设我有一堆 maven 模块,每个模块都有自己的主干/分支/标签。如下图所示。
portal_root
+project1
+tags
+branches
+trunk
+project2
.
.
.
+parent
pom.xml
如果遵循multi module maven project with parent pom and svn layout 答案中建议的结构,我会将父项目与子项目处于同一级别,并通过相对路径引用它。但是,我认为这会使发布政策相当复杂。
考虑到源是从trunk复制到tags/v*/,到父级的相对路径不再有效:比较../parent/和../../parent。此外,标记的子代没有有效的父代,因为旧的父代引用了主干。这引出了一个问题:为具有自己的 SCM 层次结构的模块构建标记源的 Maven 最佳实践是什么?
【问题讨论】:
【参考方案1】:与其使用相对路径,不如考虑在公司 Nexus 存储库(如果您的团队很小,则在每个开发人员本地 maven 存储库本地)构建和分发您的父工件。
然后使用标准 maven 坐标引用这个父级,maven 将尝试解析它,因为它是一个依赖项。
然而,这意味着当您对父级进行更改时,您必须更新所有下游工件以使更改生效
【讨论】:
以上是关于具有自己的 SCM 布局的 Maven 多模块 - 如何构建标签?的主要内容,如果未能解决你的问题,请参考以下文章