有没有办法告诉ant / ivy不使用本地$HOME/.ivy2
缓存?
答案 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>