解决常春藤的最佳链
Posted
技术标签:
【中文标题】解决常春藤的最佳链【英文标题】:optimal chain for resolve in ivy 【发布时间】:2015-10-28 08:12:40 【问题描述】:我有一些集成了 ivy 的项目,我在两个可能的存储库中发布了我的工件,本地存储库和 beta 存储库,它们响应安装档案的服务器以及我与同事共享我的 jar 的服务器。 现在的问题是:我需要找到一种方法来构建一个解决方案链来做这些事情:
-
在各个存储库之间搜索 latest.integration。
取回那个罐子。
如果该 jar 已经在我的缓存中,则不必下载它。
如果缓存中的工件在其中一个存储库中具有相同版本的工件,则按时间顺序采用最新的。
现在我已经尝试了所有设置
常春藤设置
<chain name="resolvechain">
<ibiblio name="b1" root="archivaURLforbeta" m2compatible="true" checkmodified="true" latest="latest-time"/>
<filesystem name="b2" checkmodified="true" >
<artifact pattern="$ivy.local.default.root/$ivy.local.default.artifact.pattern" />
</filesystem>
<ibiblio name="b3" root="archivaURLforrelease" m2compatible="true" latest="latest-time"/>
<ibiblio name="b4" m2compatible="true"/>
</chain>
这是 Build.xml 文件中解析的目标:
<ivy:settings file="$archiva.set" />
<ivy:resolve refresh="true" resolveMode="dynamic" changing="true"/>
<ivy:retrieve sync="true" overwritemode="newer" pattern="./lib/[artifact]-[type]-[revision](.[ext])" />
这是一个关于如何将依赖项写入 ivy.xml 文件的示例
<dependency org="organization" name="module-name" rev="latest.integration" transitive="false" conf="default" />
问题有两个: 首先根据我的需要有什么错误吗? 第二,我想做的,有可能吗?
我问了这两个问题,因为在我看来,设置 checkmodified true 和更改 true 让我的应用程序完全跳过我的缓存,并且我的项目每次都继续下载工件。
【问题讨论】:
【参考方案1】:我找到了在 *** 中的不同问题之间搜索的解决方案,以及与我的同事在常春藤社区中的一些问题解决方案中的解决方案。 文件系统需要它自己的最新时间策略,每个解析都记录他们自己的模块的最后日期修订。 这里是代码中的mod:
<filesystem name="b2" checkmodified="true" latest="latest-time">
<artifact pattern="$ivy.local.default.root/$ivy.local.default.artifact.pattern" />
</filesystem>
【讨论】:
以上是关于解决常春藤的最佳链的主要内容,如果未能解决你的问题,请参考以下文章