如何覆盖常春藤缓存的位置?

时间:2009-08-18 10:45:45

标签: java ivy

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

3 个答案:

答案 0 :(得分:18)

ivysettings.xml中的类似内容:

<ivysettings>
    <caches defaultCacheDir="/path/to/my/cache/dir"/>
</ivysettings>

请参阅http://ant.apache.org/ivy/history/latest-milestone/settings/caches.html

上的文档

答案 1 :(得分:13)

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

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

这会在每个jenkins作业的工作区创建常春藤缓存目录。

答案 2 :(得分:4)

尽管skaffman的上述答案是正确的,但我发现它比我预期的要多得多!

当我将ivysettings.xml文件添加到项目中时,我需要重新定义几乎所有内容,因为默认值在此之前一直正常工作。

所以,我发现了如何将新的缓存目录添加到我的NAnt脚本中的内联命令行中...

< exec program="java" commandline="... ... -jar ${ivy.jar} -cache ${project.cache} ... ... />

(其中${ivy.jar}是我的.jar文件的位置,${project.cache}是我希望缓存区域使用的脚本中先前设置的新位置。)

这意味着我不需要ivysettings.xml文件,我可以将所有内容还原为使用默认解析器等。