常春藤决心的最佳链条
optimal chain for resolve in ivy
我有一些集成了 ivy 的项目,我在两个可能的存储库中发布了我的工件,一个是本地存储库,它响应一个文件夹,另一个是 beta 存储库,它响应一个安装了 archiva 并与我的 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 让我的应用程序完全跳过我的缓存,并且我的项目每次都继续下载工件。
我在 Whosebug 中找到了在不同问题之间搜索的解决方案,并与我的同事在常春藤社区中找到了一些问题解决方案。
文件系统需要它自己的最新策略,每个解析记录它们自己的mod规则最后日期修订。
这里代码中的mod:
<filesystem name="b2" checkmodified="true" latest="latest-time">
<artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
</filesystem>
我有一些集成了 ivy 的项目,我在两个可能的存储库中发布了我的工件,一个是本地存储库,它响应一个文件夹,另一个是 beta 存储库,它响应一个安装了 archiva 并与我的 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 让我的应用程序完全跳过我的缓存,并且我的项目每次都继续下载工件。
我在 Whosebug 中找到了在不同问题之间搜索的解决方案,并与我的同事在常春藤社区中找到了一些问题解决方案。
文件系统需要它自己的最新策略,每个解析记录它们自己的mod规则最后日期修订。
这里代码中的mod:
<filesystem name="b2" checkmodified="true" latest="latest-time">
<artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
</filesystem>