在与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
}
}
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud) 我有一个需要很长时间的sbt构建.它既大又复杂,很难知道从哪里开始清理它.似乎sbt保留了很多关于构建结构的元数据,具有相互依赖性,命名任务,范围等等.通过所有这些元数据,似乎很容易跳入并测量每个不同任务(带有范围)所花费的时间.在代码中这样做,而不是基于日志消息不仅感觉更干净,但并发处理很好的优势,建立和其他复杂的东西,可能导致日志时间是误导性的.
目前有没有设施可以做到这一点?它不像我们在"用户"构建中可以做的事情,但也许SBT插件可以挂钩任务启动器并在最后维护/生成一个大的时间报告.这将有助于集中精力改善缓慢的事情,而不会在即时发生的事情上浪费时间.