我有一些项目集成了常春藤,我在两个可能的存储库中发布我的工件,本地,响应文件夹和beta,响应安装了archiva的服务器以及我共享我的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让我的应用程序完全跳过我的缓存,并且我的项目每次都会继续下载工件。
答案 0 :(得分:0)
我发现解决方案在stackoverflow中的不同问题之间进行搜索,并在常春藤社区的一些问题解决方案中与同事一起搜索。
文件系统需要它自己的最新时间策略,每个解决方案都会注意到自己的模块上次修改日期。
这里是代码中的mod:
<filesystem name="b2" checkmodified="true" latest="latest-time">
<artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />
</filesystem>