ivy - 设置ivy冲突管理者

标签 ivy

我正在尝试在 Ivy 中设置冲突管理器,但我找不到如何设置它们的具体示例。例如,要设置“严格”经理,这会是什么样子?

<conflict-managers>
  ???
</conflict-managers>

最佳答案

<rant>
是的,Ivy 文档不是很有趣吗!我的意思是,它必须组织良好且完整吗?难道真的必须有意义吗?我的意思是,我的工作并不取决于它!

等一下,它确实...
</rant>

抱歉,我必须把 Ivy 文档的状态说出来。相比之下,它使 Maven 文档看起来更精彩。

我发现的关于 Ivy 的最好的书是 Manning 的 Ant in Action 。这是一本已有七年历史的书,已经绝版了(但仍然可以作为电子书获得。如果不是这本书(使用 Ivy 1.4),我会完全迷失方向。不幸的是,它没有深入研究深入 Ivy 设置。

有一个listing of all of the possible conflict managers深埋在 Ivy 文档中。

  • 全部此冲突管理器通过选择所有修订来解决冲突。也称为 NoConflictManager,它不会驱逐任何模块。
  • 最新时间此冲突管理器仅选择“最新”修订版,最新被定义为最新时间。请注意,最新时间的计算成本很高,因此如果可以的话,最好选择最新版本。
  • latest-revision 此冲突管理器仅选择“最新”修订版,最新修订版是通过修订版字符串比较来定义的。
  • 最新兼容此冲突管理器选择冲突中的最新版本,这可能会产生一组兼容的依赖项。这意味着最终,这个冲突管理器不允许任何冲突(类似于严格冲突管理器),只不过它遵循尽力而为的策略来尝试找到一组兼容的模块(根据版本约束)<
  • strict只要发现冲突,此冲突管理器就会抛出异常(即导致构建失败)。

我还没有玩过它们,但我相信您只需在 ivy-settings.xml 中执行以下操作即可:

<conflict-managers>
    <latest-revision/>
</conflict-managers>

您还可以在 ivy.xml 中定义冲突管理这也可能更实用一些,因为它可以逐个模块地定义。

当然,一些示例对此会有很大帮助,但 Ivy 文档并没有提供很多。

关于ivy - 设置ivy冲突管理者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532996/

相关文章:

java - Ivy 间接依赖项列出两次

svn - svn 客户端 'svnkit' 不可用

git - 如何在Gradle中添加git存储库中的jar文件作为依赖项?

java - 离线/断开连接时解决 Apache Ivy 依赖项?

angular - Angular 模块中的 window.location.origin 为空

java - 如何排除 Ivy 中的工件

gradle - 使用 Gradle ivy-publish 插件生成 ivy.xml

ant - apache ivy - ivysettings.xml 中有什么