常春藤 - 将解析结果输出到常春藤文件

Joe*_*ney 7 java dependencies build ivy dependency-management

解决了我的ivy.xml文件之后,我想创建一个新resolved-ivy.xml文件,其中包含解析中找到的所有传递依赖项.是否有可能做到这一点?

这与交付不同,我相信它只会写出您的直接依赖关系ivy.xml,而不是传递依赖关系.该deliverAnt任务确实有一个delivertarget属性,它看起来在文档中像它应该做到这一点.实际上,它仅适用于同一组织中的模块(因此通常不适用于所有依赖项)并为每个模块生成一个文件.

它也ivy-report与解析期间生成的XML文件不同,但并没有太大的不同.如果我正在尝试的是不可能的,那么我想直接破解这个文件,我想.

此处的上下文尝试启用可重复的可重现构建,包括存在更改(新库,版本)的存储库.试图这样做的互联网周围有帖子,我发现没有一个可以正确地做到这一点.

  • 对Ivy存储库的添加可以更改解析结果,特别是如果存储库中任何位置(而不仅仅是您的项目)中的任何依赖项具有范围依赖性.例如:A依赖于B;[2.0,4.0]B;3.1稍后添加到存储库.
  • 想法是正常解决,将解决方案写为扁平的常春藤文件,将其保存在项目的VCS中用于该标记(或其他),然后用该文件解析该文件transitive="false".假设存储库中的现有项不会更改,这允许可重复的构建.
  • 如果有人对此有任何更好的想法,我会全力以赴.目前我期望不得不破解一些组合ResolveEngine使其ResolveReport可用,然后添加一个自定义DeliverEngine来使用它.

小智 1

您正在寻找的功能已在 Ivy 2.4 中添加:fixdeps。它读取一个ivy.xml文件(在本例中用作规范),并输出一个等效文件,例如ivy-resolved.xml,解决了所有传递依赖关系。