【问题标题】:How to override the location of Ivy's Cache?如何覆盖常春藤缓存的位置?
【发布时间】:2010-11-20 13:21:24
【问题描述】:

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

【问题讨论】:

    标签: java ivy


    【解决方案1】:

    ivysettings.xml 中的类似内容:

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

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

    【讨论】:

    【解决方案2】:

    虽然上面 skaffman 的回答是正确的,但我发现它比我预期的要多得多!

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

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

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

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

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

    【讨论】:

    • 您可以通过在 ivysettings 文件中的缓存行后添加 &lt;include url="${ivy.default.settings.dir}/ivysettings.xml"/&gt; 来恢复默认行为。
    • 啊啊啊啊!我不知道!谢谢!
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 2011-04-12
      • 1970-01-01
      • 2016-05-28
      • 2013-07-07
      • 2016-12-31
      • 2018-07-07
      • 2010-12-30
      • 2011-02-24
      相关资源
      最近更新 更多