我希望能够编译一次我的项目并将其传递给CI服务器上的多个构建步骤。但SBT将文件放在如下所示的暂存区域中。
/home/vagrant/.sbt/0.13/staging/
这意味着项目不是独立的,每个CI步骤都会再次编译它。
我如何告诉SBT保持简单和独立,并确保所需的一切都在项目目录中?
答案 0 :(得分:2)
仅供参考,当源文件夹不是读/写时,暂存区域用于目标文件。使源文件夹读/写应该解决这个问题。
答案 1 :(得分:1)
如果在启动时将-Dsbt.global.staging=./.staging
传递给sbt,则暂存目录将在项目目录中为.staging
。
我通过查看the sbt source并将其与Paul P的sbt runner如何传递sbt启动路径的值进行修补来解决这个问题。
如果这不能达到您想要的效果,那么您可以使用自定义解析器进行操作。 sbt Build Loaders页面讨论了如何创建自定义解析程序,该解析程序允许您指定有关依赖项编写位置的更多详细信息。如果我的解决方案无法满足您的需求,您可能需要做类似的事情。