为什么以及如何设置sbt&svy和Ivy的主页和缓存目录?

时间:2014-08-11 16:44:21

标签: sbt

我想了解如何设置sbt和Ivy缓存目录。

我在网上发现了一些相互矛盾的答案,所以想在这里查看。

sbt -Dsbt.boot.directory=/home/user/.sbt/boot/
sbt -Dsbt.ivy.home=/home/user/.sbt/.ivy2/

这些可以设置为环境变量还是需要在每个build.sbt

如果他们是环境变量,他们会sbt.boot.directorysbt.ivy.home吗?

最好在每个build.sbt中设置它们,还可能在环境变量中设置它们吗?

1 个答案:

答案 0 :(得分:0)

你不需要设置它们,因为sbt启动器已经知道它们的值。

  

这些可以设置为环境变量还是需要在每个build.sbt中?

如果你想更改它们,它们应该成为启动sbt启动器的命令行的一部分 - 它们是Java的系统属性,并被设置为其他Java属性。它们不是构建设置。甚至没有简单的方法在build.sbt中设置它们。

  

如果他们是环境变量,他们会是sbt.boot.directory和sbt.ivy.home吗?

没有。它们不是环境变量。

关于设置Java系统属性没有什么特别之处 - 只需将sbt视为恰好读取系统属性的Java应用程序,而不是将它们视为默认值。

如果您是sbt的新手,那么现在最好忘记Java系统属性。你只需要记住sbt的全局配置目录是~/.sbt,而~/.ivy2/是Ivy的东西。这足以让sbt继续下去。

  

最好在每个build.sbt中设置它们,还可能作为环境变量?

鉴于您无法在build.sbt中设置它们(在从sbt启动过程的角度设置构建的过程中为时已晚)并且它们不是环境变量,那么当前形式的问题没有明智的答案(也许一个简单的“不,它不是”可能有意义)。