设置常春藤冲突经理

Jus*_*ser 3 ivy

我试图在常春藤设置冲突管理器,但我找不到如何设置它们的具体示例.例如,要设置"严格"管理器,这会是什么样子?

<conflict-managers>
  ???
</conflict-managers>
Run Code Online (Sandbox Code Playgroud)

Dav*_* W. 8

<rant>
是的,不是常春藤文件的h !! 我的意思是,它必须组织良好,完整吗?它真的必须有意义吗?我的意思是,这不是我的工作取决于它!

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

对不起,我必须把常春藤的文件放在胸前.相比之下,它使Maven文档看起来很精彩.

我发现的关于常春藤的最好的书是Manning的Ant in Action.这是一本已有7年历史的书已绝版(但仍然可以作为电子书使用.如果不是这本书(使用Ivy 1.4),我本来就完全迷失了.不幸的是,它并没有钻研深入常春藤设置.

有一个深藏在常春藤文档中的所有可能的冲突管理器列表.

  • 所有这些冲突管理器通过选择所有修订来解决冲突.也称为NoConflictManager,它不会驱逐任何模块.
  • 最新时间此冲突管理器仅选择"最新"版本,最新版本定义为最新版本.请注意,最新的计算成本很高,因此如果可以,请选择最新版本.
  • 最新版本此冲突管理器仅选择"最新"修订版,最新版本由修订版的字符串比较定义.
  • 最新兼容的冲突管理器在冲突中选择最新版本,这可能导致一组兼容的兼容性.这意味着最终,这个冲突管理器不允许任何冲突(类似于严格冲突管理器),除了它遵循尽力而为策略尝试找到一组兼容模块(根据版本限制)
  • 严格此冲突管理器在发现冲突时抛出异常(即导致构建失败).

我没有和他们玩过,但我相信你只需要做以下几点ivy-settings.xml:

<conflict-managers>
    <latest-revision/>
</conflict-managers>
Run Code Online (Sandbox Code Playgroud)

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

当然,一些例子可能会有很长的路要走,但是Ivy文档并没有提供很多.