解决常春藤的最佳链

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>

【讨论】:

以上是关于解决常春藤的最佳链的主要内容,如果未能解决你的问题,请参考以下文章

应用码链技术,是数字经济时代提高产业价值链的最佳解决方案

区块链开发:数据湖泊与数据仓库,哪个是最佳数据架构?

数据结构:算法的最佳和最差运行时间

ruby 中没有扩展数组的最佳链表?

使用 rSpec 测试延迟作业链的最佳方法是啥?

12个以太坊区块链最佳开发工具