我可以一起关闭.ivy缓存吗?

use*_*638 5 ant properties build ivy

有没有办法告诉ant/ivy不使用本地$HOME/.ivy2缓存?

Mar*_*nor 7

我将创建一个ivysettings.xml文件,并使用caches指令指定缓存的位置:

<ivysettings>
    <settings defaultResolver="central"/>
    <caches defaultCacheDir="${ivy.settings.dir}/cache"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
    </resolvers>
</ivysettings>
Run Code Online (Sandbox Code Playgroud)

我认为这比在构建文件中设置属性ivy.default.ivy.user.dir更明确,并且不那么神秘.

更新

使用此方法,可以使用ivy cleancache任务清除指定的缓存目录.

<target name="clean-all" depends="clean">
    <ivy:cleancache />
</target>
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 3

关于 ivy 的完整书中,您可以查看“设置存储库”部分:

多个存储库在文件系统中使用相同的根。引用为${ivy.default.ivy.user.dir},这是默认目录.ivy2

请注意,通过设置 Ivy 变量可以完成几件事。
要在不定义自己的ivysettings.xml文件的情况下设置它们,您可以:

  • 如果您从 Ant 使用 Ivy,则在构建文件中对 Ivy 的任何调用之前设置 Ant 属性
  • 如果您从命令行使用 Ivy,请设置环境变量

例如:

<target name="resolve">
  <property name="ivy.default.ivy.user.dir" value="/path/to/ivy/user/dir"/>
  <ivy:resolve />
</target>
Run Code Online (Sandbox Code Playgroud)

打包器解析器还需要配置一些设置以避免${home}

<packager name="ivyroundup"
         buildRoot="/path/to/my/.ivy2/packager/build"
         resourceCache="/path/to/my/.ivy2/packager/cache"
         resourceURL="ftp://mirror.example.com/pub/resources/[organisation]/[module]/">
    <ivy pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/ivy.xml"/>
    <artifact pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/packager.xml"/>
</packager>
Run Code Online (Sandbox Code Playgroud)