2011-02-16 112 views
4

有沒有辦法告訴螞蟻/常春藤不使用本地$HOME/.ivy2緩存?我可以關閉.ivy緩存嗎?

+0

同一問題的兩次相同問題。請參閱http://stackoverflow.com/questions/4934948/setting-ivy-home-directory-in-ant – 2011-02-16 23:29:07

+0

@ MarkO'Connor - 另一個問題詢問使用不同的位置。這個問題關於徹底關閉它。 – 2012-12-30 00:19:45

+0

在這種情況下,它的答案在這裏:http://stackoverflow.com/questions/11078774/is-it-possible-to-turn-off-ivys-cache-altogether/ – 2012-12-30 00:27:42

回答

3

full book on ivy,你檢查出的「設置庫」部分:

多個倉庫使用相同的根在你的文件系統。引用爲${ivy.default.ivy.user.dir},這是默認情況下您的用戶家中的目錄.ivy2

請注意,可以通過設置常量變量來完成幾件事情。
設置它們沒有定義自己ivysettings.xml文件,您可以:

  • 設置Ant屬性在生成文件中常春藤任何調用之前,如果你從螞蟻使用常春藤
  • 設置環境變量,如果你使用常春藤從命令行

例如:

<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> 
6

我想創建一個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>