首页 文章

常 Spring 藤解决的最佳链条

提问于
浏览
-1

我有一些项目集成了常 Spring 藤,我在两个可能的存储库中发布我的工件,本地,响应文件夹和beta,响应安装了archiva的服务器以及我与同事分享我的 jar 的地方 . 现在的问题是:我需要找到一种方法来构建一个解决方案链来做这件事:

  • 在各个存储库之间搜索latest.integration .

  • 检索那个 jar .

  • 如果那个jar已经在我的缓存中,则不必下载它 .

  • 如果缓存中的工件在其中一个存储库中具有相同版本的工件,则采用最新的年表顺序 .

现在我已经尝试了所有设置

Ivy setting

<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 回答

  • 0

    我发现解决方案在stackoverflow中的不同问题之间进行搜索,并在常 Spring 藤社区的一些问题解决方案中与同事进行搜索 .
    FileSystem需要 it's own latest-time strategy ,每个解析都注意到自己的模块上次修改日期 .
    这里是代码中的mod:

    <filesystem name="b2" checkmodified="true" latest="latest-time">
        <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
    </filesystem>
    

相关问题