【发布时间】:2015-03-12 21:40:27
【问题描述】:
我习惯于 maven 构建,并且通常在父 pom 文件(或公司父 pom)dependencyManagement 部分中定义库版本。所以更新次要版本只是一个文件的编辑和部署。
现在我必须处理 ant/ivy 并管理多个具有大量模块的项目,这些模块通常应该共享相同的库/依赖版本,但需要能够在需要时覆盖它们。
我读到了 ivy 中的 extends mechanism(如提到的 here),但这会将所有依赖项添加到子项中,而不仅仅是它的版本。
使用 open revision definitions 也无济于事,因为我需要维护所有项目的不同分支,这些分支不得超过特定版本。
我希望你们中的一些有经验的 ivy 用户可以告诉我 ivy 是否能够做到这一点,或者你如何管理这项任务。
【问题讨论】:
-
另一个常春藤特性是动态修订。据我所知,Maven 不支持。见:ant.apache.org/ivy/history/latest-milestone/ivyfile/…
-
@MarkO'Connor 我稍后发现了这个问题并且已经在上面喜欢它,但是提到的扩展功能不允许继承依赖版本,而只能继承完整的依赖,因为它被添加到“孩子”ivy.xml,这不是我想要的。这就像我在 Maven 中定义父依赖项而不是依赖项管理一样。
-
@MarkO'Connor 动态修订对我没有帮助,因为我必须维护每个项目的至少 3 个使用不同依赖项版本的分支。最新的方法仅适用于主干。这就是我所说的“开放修订定义”。
-
我不喜欢 Maven 中的父子关系,所以我同样怀疑 ivy 中的“扩展”功能。我的建议是使用 ivysettings 文件中定义的属性。
标签: maven ant version ivy dependency-management