告诉SBT不要使用临时区域

时间:2014-03-03 10:06:23

标签: scala sbt

我希望能够编译一次我的项目并将其传递给CI服务器上的多个构建步骤。但SBT将文件放在如下所示的暂存区域中。

/home/vagrant/.sbt/0.13/staging/

这意味着项目不是独立的,每个CI步骤都会再次编译它。

我如何告诉SBT保持简单和独立,并确保所需的一切都在项目目录中?

2 个答案:

答案 0 :(得分:2)

仅供参考,当源文件夹不是读/写时,暂存区域用于目标文件。使源文件夹读/写应该解决这个问题。

答案 1 :(得分:1)

如果在启动时将-Dsbt.global.staging=./.staging传递给sbt,则暂存目录将在项目目录中为.staging

我通过查看the sbt source并将其与Paul P的sbt runner如何传递sbt启动路径的值进行修补来解决这个问题。

如果这不能达到您想要的效果,那么您可以使用自定义解析器进行操作。 sbt Build Loaders页面讨论了如何创建自定义解析程序,该解析程序允许您指定有关依赖项编写位置的更多详细信息。如果我的解决方案无法满足您的需求,您可能需要做类似的事情。