我正在尝试在 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/