SBT:一旦构建了编译器接口,它在哪里?

时间:2014-11-18 19:48:41

标签: scala playframework sbt typesafe-activator

我注意到我的CircleCI服务器上的Play 2.3项目相对于我的本地构建机器的构建时间非常慢。其中一个原因是,在每次构建时,SBT都会打印出以下内容:

  

[info]' compiler-interface'尚未针对Scala 2.11.4编译。正在编译......

然后花费大约一分钟编译编译器。在我的笔记本电脑上,这恰好发生了一次,然后再也没发生过。我的假设是,在我的笔记本电脑上,编译器被缓存到某个地方,以便下次不必再次重建,而在CI服务器上,该缓存目录会被烧毁。

CircleCI允许您指定在构建之间不会被销毁的缓存目录(或者更准确地说,被销毁,然后重建),因此对我来说简单的解决方案是告诉CircleCI保存该目录。

问题是,我不知道它在哪里。我已经保存~/.sbt~/.ivy2,但它没有帮助。编译器是否构建到我可以缓存的其他位置?关于如何解决这个问题的任何其他想法都不会降低我的Scala编译器的评级吗?

2 个答案:

答案 0 :(得分:2)

我查看了我的设置,似乎compiler-interface确实应该在~/.sbt~/.ivy2

您的问题可能来自您保存这些目录的方式。您确定要为正确的用户保存吗?您必须保存它们以用于启动sbt命令。

答案 1 :(得分:1)

@joe:您可以sbt compile:test代替sbt compile来获取缓存中的测试依赖项(以及确保编译接口包含在缓存中)。