是否有可能使用本地Maven存储库(〜/ .m2)作为本地常春藤缓存(〜/ .ivy)?它们有不同的布局。
有时候我会使用Maven,有时我会使用下面使用Ivy的SBT,所以我在Maven和Ivy中都有2个相同的lib副本。我想使用相同的目录,从而节省磁盘空间和网络。
感谢。
答案 0 :(得分:24)
要保存网络,只需configure ivy to use local Maven repository
<property name="local-maven2-dir" value="${user.home}/.m2/repository/" />
<filesystem name="local-maven-2" m2compatible="true">
<artifact
pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].[ext]" />
<ivy
pattern="${local-maven2-dir}/[organisation]/[module]/[revision]/[module]-[revision].pom" />
</filesystem>
答案 1 :(得分:5)
您可以使用
指定缓存和缓存的布局 <cache/> Tag
我认为你必须改变artifacts / ivy.xml文件的模式
标签在这里描述:
http://ant.apache.org/ivy/history/2.0.0/settings/caches.html。
它似乎应该有效,但我从未尝试过:)。
答案 2 :(得分:0)
我在以下文件中添加了缓存设置。这是正确的方法吗? SBT仍在下载Maven本地仓库(~/.m2/repository
)中存在的文件。
$ cat ~/.ivy2/ivysettings.xml
<ivysettings>
<properties environment="env" />
<caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
<property name="local-maven2-dir" value="${user.home}/.m2/repository/" />
<filesystem name="local-maven-2" m2compatible="true" force="false" local="true">
<artifact pattern="${gerald.repo.dir}/[organisation]/[module]/[revision]/[module]-[revision].[ext]"/>
<ivy pattern="${gerald.repo.dir}/[organisation]/[module]/[revision]/[module]-[revision].pom"/>
</filesystem>
<chain name="internal" dual="true">
<resolver ref="local-maven-2"/>
<resolver ref="apache-snapshot"/>
<resolver ref="maven2"/>
</chain>
</ivysettings>