我使用SBT作为构建Scala项目的构建工具.
我的问题是,我无法配置SBT将依赖项下载到我的用户主目录.因此,我正在寻找一个每用户甚至更好的系统范围设置来告诉SBT将Ivy缓存目录放在其他地方.
使用maven,可以使用每用户settings.xml来配置本地存储库.
我读过如何覆盖常春藤缓存的位置?它是答案,但它似乎只描述了如何在每个项目的基础上配置设置.
如果没有其他选择,我会选择每个项目设置,但我没有从上述问题得到答案.更多细节将是最受欢迎的,例如放置ivysettings.xml的位置.我将它放入项目的根目录,但它不起作用.
Mar*_*Tye 43
该sbt.ivy.home物业只是解决方案的一半.它控制sbt启动程序下载sbt本身的位置(以及scala编译器和库等相关依赖项)正如Joachim Hofer所述,它对下载项目声明的依赖项的位置没有影响.
要更改该位置,您必须设置该ivy.home属性.因此,为了增加Joachim的第一个解决方案,您需要设置两个系统属性:
java -Dsbt.ivy.home=/tmp/.ivy2/ -Divy.home=/tmp/.ivy2/ -jar `dirname $0`/sbt-launch.jar "$@"
Run Code Online (Sandbox Code Playgroud)
使用这些属性,启动程序将下载项目和sbt的依赖项到/tmp/.ivy2/目录.当然,您也可以将它们放在不同的目录中.
小智 30
您只需将环境变量添加到sbt launch shell脚本:
java -Dsbt.ivy.home=/tmp/.ivy2/ ...
Run Code Online (Sandbox Code Playgroud)
请参阅官方文档中的" 库管理 ".
如果你还没有,你应该使用sbt-extras.
然后,它只是你传递它的旗帜:
sbt -ivy /path/to/.ivy2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34778 次 |
| 最近记录: |