繁体   English   中英

将常春藤依赖点指向本地文件吗?

[英]Point ivy dependency at a local file?

我有一个主项目,其中模块A依赖于模块B的构建所创建的.jar文件。在开发过程中,我会定期修改B,然后构建B来创建库,然后将A构建为使用这些更改。

有没有办法将模块A的常春藤文件指向我的模块B构建所创建的jar文件? 鉴于我要迭代多次,所以我不想一遍又一遍地检查模块B的jar。 在每个模块B构建之后必须将jar复制到模块A的构建目录结构中也很烦人。

实际上,对我来说,情况更糟,因为我在依赖树中有大约4个模块(A-> B-> CD)。 如果只是A和B,我可能会忍受,但是我已经厌倦了在子模块构建之后复制jar文件,并考虑是否有一种方法可以覆盖常春藤文件依赖项行以在本地查找,然后让生活变得简单得多。

将Ivy依赖项指向本地构建的模块不是解决此问题的方法。 而是在构建模块B时将其发布到本地Ivy存储库。 当您解析模块A的依赖关系时,它将从本地存储库中下拉模块B。

从本地存储库中的Ivy文档

当您想做一些事情而不会受到环境中其他任何事情的干扰时,本地存储库特别有用。 这意味着只要常春藤能够在该存储库中找到模块,无论其他模块中有什么可用模块,都将使用它。

例如,如果您有一个模块在version.integration版本中声明了对模块foo的依赖,那么即使在本地存储库中找到了foo的修订版,也将使用该修订版,即使其他存储库中有较新的修订版也是如此。

这可能会让您有些不安,但是想像一下您必须在项目上实现新功能,并且要实现此功能,您需要修改两个模块:您在foo模块中添加了一个新方法,并在模块中利用了这个新方法酒吧。 然后,如果您将模块foo发布到本地存储库,即使其他人在共享存储库中发布了foo的新修订版(此修订版没有您当前要添加的新方法),也可以确保将其添加到bar模块中)。

但是要小心,当您完成开发并将其发布到共享库上时,您将必须清理本地存储库以从共享库中发布的新版本中受益。

还要注意,在本地存储库中找到的模块必须完整,即它们必须提供模块描述符和已发布的工件。

在多个项目中使用Ivy环境文档中有一个示例publish-local Ant任务,您可能会发现它很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM