解析了我的ivy.xml
文件后,我想创建一个新resolved-ivy.xml
文件,其中包含在解析中找到的所有传递依赖项。是否有可能做到这一点?
这与交付不同,交付(我相信)只写出您的直接依赖项ivy.xml
,而不是传递依赖项。deliver
Ant 任务确实有一个属性,它在delivertarget
文档中看起来应该这样做。实际上,它仅适用于同一组织中的模块(因此通常不适用于所有依赖项)并为每个模块生成一个文件。
它也与ivy-report
解析期间生成的 XML 文件不同,但差别不大。如果我正在尝试的事情是不可能的,那么我想我会直接破解这个文件。
这里的上下文是尝试启用可重复的可重现构建,包括在存储库存在更改(新库、版本)的情况下。互联网上的一些帖子试图做到这一点,但我发现没有一个可以正确做到这一点。
- 对 Ivy 存储库的添加可以更改解析结果,特别是如果存储库中的任何依赖项(不仅仅是您的项目)具有范围依赖项。示例:
A
依赖B;[2.0,4.0]
并B;3.1
稍后添加到存储库中。 - 想法是正常解析,将解析写为扁平的 Ivy 文件,将其保存在项目的 VCS 中以获取该标签(或其他),然后使用
transitive="false"
. 假设存储库中的现有项目不更改,这允许可重复构建。 - 如果有人对此有任何更好的想法,我会全力以赴。目前,我希望必须破解一些组合
ResolveEngine
才能使其ResolveReport
可用,然后添加一个自定义DeliverEngine
来使用它。