在使用sbt
时,我在许多地方都面临着缓慢的问题
- 在Intellij中导入SBT项目 - 大约(8-10分钟)。
- SBT项目的Intellij索引。
sbt
(终端此命令需要 - 大约(2-3分钟))。- 醇>
compile
(在sbt shell中,此命令需要 - 大约(3-5分钟)) 5.无论何时我修改build.sbt
文件,项目刷新需要3-4 分钟。
我需要检查更多的地方,但我经常面对的指定点以上。
此问题与SBT或Scala有关吗?如果是,如何解决相同问题
注意:我有良好的互联网连接,所以这不是网络问题。
我的Scala类文件:
import org.scalatest._
class TaskManagerSpec extends FlatSpec with Matchers {
"An empty tasks list" should "have 0 tasks due today" in {
val tasksDueToday = TaskManager.allTasksDueToday(List())
tasksDueToday should have length 0
}
}
build.sbt
name := "tasky"
version := "0.1.0"
scalaVersion := "2.11.6"
resolvers += "Artima Maven Repository" at "http://repo.artima.com/releases"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
答案 0 :(得分:2)
SBT很慢,因为编译在Scala和Scala编译中完成的内部代码很慢,因为它是一种复杂的语言(但是一旦编译Scala在运行时加快了很多)
使用SBT 1.x版本和SBT服务器时,可以提升SBT。 SBT服务器允许您仅使用命令行和IDE之间共享的一个SBT实例。这非常有用,更多信息请访问:https://www.scala-sbt.org/1.x/docs/sbt-server.html
另外考虑使用更轻的其他构建工具,如PANTS,它基于Python,可以解释并且速度更快。更多信息:https://www.pantsbuild.org/
注意:PANTS文档和社区不像SBT那样广泛,但是值得一试,PANTS可以做很多惊人的事情。
注意2:如果你的代码库很大,那么编译/构建仍然需要花费很多时间,所以考虑将你的代码和工件安排为增量/缓存的片段/子项目,以便看到真正的提升。