如何覆盖Ivy Cache的位置?

24

我正在使用Ivy作为我的持续集成构建系统的一部分,但是我需要覆盖Ivy本地缓存区的默认位置。

3个回答

19

啊,也许这就是我出错的地方 - 我没有ivysettings.xml文件!Ivy如何使用这个文件?我猜我需要通过命令行参数传递它进去吗? - Brett Rigby
3
我找到了这个网页...http://ant.apache.org/ivy/history/latest-milestone/standalone.html 我觉得这回答了我的第二个问题! - Brett Rigby

13

我使用Jenkins作为CI构建系统,并创建 $HOME/.ivy2/ivysettings.xml 文件:

<ivysettings>
    <properties environment="env" />
    <caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
</ivysettings>

这将在每个Jenkins作业的工作区创建Ivy缓存目录。


5
虽然上面来自skaffman的答案是正确的,但我发现需要做的工作比我预期的要多得多!当我将ivysettings.xml文件添加到项目中后,我几乎需要重新定义所有内容,因为默认值一直有效,直到那时为止。所以,我找到了如何在我的NAnt脚本内联命令行中添加新的缓存目录的方法...
< exec program="java" commandline="... ... -jar ${ivy.jar} -cache ${project.cache} ... ... />

(其中${ivy.jar}是我的.jar文件的位置,${project.cache}是脚本中设置的新位置,我希望缓存区域使用该位置。)
这意味着我不需要ivysettings.xml文件,我可以将所有内容恢复为使用默认的解析器等。

8
你可以在ivysettings文件中缓存行后添加<include url="${ivy.default.settings.dir}/ivysettings.xml"/>来恢复默认行为。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接