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

时间:2011-02-16 17:02:27

标签: ant build properties ivy

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

2 个答案:

答案 0 :(得分:7)

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

<ivysettings>
    <settings defaultResolver="central"/>
    <caches defaultCacheDir="${ivy.settings.dir}/cache"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
    </resolvers>
</ivysettings>

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

更新

使用此方法,可以使用常春藤cleancache任务清除指定的缓存目录。

<target name="clean-all" depends="clean">
    <ivy:cleancache />
</target>

答案 1 :(得分:3)

full book on ivy中,您可以查看“设置存储库”部分:

  

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

     

请注意,通过设置常春藤变量可以完成多项工作   要设置它们而不定义自己的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>

打包程序解析程序还有一些设置需要配置以避免${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>