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

Bre*_*gby 24 java ivy

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

ska*_*man 19

这样的事情ivysettings.xml:

<ivysettings>
    <caches defaultCacheDir="/path/to/my/cache/dir"/>
</ivysettings>
Run Code Online (Sandbox Code Playgroud)

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

  • 在网上找到了...... http://ant.apache.org/ivy/history/latest-milestone/standalone.html我想这回答了我的第二个问题! (3认同)

小智 13

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

<ivysettings>
    <properties environment="env" />
    <caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
</ivysettings>
Run Code Online (Sandbox Code Playgroud)

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


Bre*_*gby 5

虽然斯卡夫曼上面的答案是正确的,但我发现这比我预期的要多得多!

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

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

< exec program="java" commandline="... ... -jar ${ivy.jar} -cache ${project.cache} ... ... />
Run Code Online (Sandbox Code Playgroud)

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

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

  • 您可以通过在 ivysettings 文件中的缓存行后面添加 `&lt;include url="${ivy.default.settings.dir}/ivysettings.xml"/&gt;` 来恢复默认行为。 (8认同)