【问题标题】:sbt project is very slow to resolve dependenciessbt 项目解决依赖关系很慢
【发布时间】:2015-11-04 13:49:20
【问题描述】:

当我做的时候,我的 sbt 项目需要超过 15 分钟

sbt clean compile

我在 AWS 上的一台强大的机器上。我相当肯定它不是 CPU 或互联网带宽的资源问题。此外,我已经多次运行此命令,因此常春藤缓存已被填充。

这是我所有的构建相关文件

/build.sbt

name := "ProjectX"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies += ("org.apache.spark" %% "spark-streaming" % "1.4.1")
  .exclude("org.slf4j", "slf4j-log4j12")
  .exclude("log4j", "log4j")
  .exclude("commons-logging", "commons-logging")
  .%("provided")

libraryDependencies += ("org.apache.spark" %% "spark-streaming-kinesis-asl" % "1.4.1")
  .exclude("org.slf4j", "slf4j-log4j12")
  .exclude("log4j", "log4j")
  .exclude("commons-logging", "commons-logging")

libraryDependencies += "org.mongodb" %% "casbah" % "2.8.1"

//test
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.4" % "test"

//logging
libraryDependencies ++= Seq(
  //facade
  "org.slf4j" % "slf4j-api" % "1.7.12",
  "org.clapper" %% "grizzled-slf4j" % "1.0.2",
  //jcl (used by aws sdks)
  "org.slf4j" % "jcl-over-slf4j" % "1.7.12",
  //log4j1 (spark)
  "org.slf4j" % "log4j-over-slf4j" % "1.7.12",
  //log4j2
  "org.apache.logging.log4j" % "log4j-api" % "2.3",
  "org.apache.logging.log4j" % "log4j-core" % "2.3",
  "org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.3"
  //alternative to log4j2
  //"org.slf4j" % "slf4j-simple" % "1.7.5"
)

/project/build.properties

sbt.version = 0.13.8

/project/plugins.sbt

logLevel := Level.Warn

addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.7.0")

resolvers += "sonatype-releases" at "https://oss.sonatype.org/content/repositories/releases/"

/project/assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")

【问题讨论】:

  • 你有没有运行 `sbt -v' 得到一些详细的 sbt 输出?它可能会提示您哪些模块需要很长时间才能解析或哪些存储库。注意:artifactoryonline.com 的几个存储库已迁移到 bintray.com 并最近被关闭。
  • 所以,即使工件已经在常春藤缓存中,它也很慢?
  • 我们也有同样的问题。使用 scala 2.11.7 和 sbt 13.9。 DNS解析速度快

标签: scala sbt


【解决方案1】:

在日志中,您是否看到以下条目:

[info]  [SUCCESSFUL ] org.apache.spark#spark-streaming-kinesis-asl_2.10;1.4.1!spark-streaming-kinesis-asl_2.10.jar (239ms)

这表明您正在下载这些工件。换句话说,您启动的 AMI 没有填充 Ivy 缓存。

在带 SSD 的笔记本电脑上使用 sbt 0.13.12,clean 和 update 大约需要 5 秒。

so-31956971> update
[info] Updating {file:/xxx/so-31956971/}app...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[success] Total time: 5 s, completed Aug 25, 2016 4:00:00 AM

【讨论】:

    猜你喜欢
    • 2014-12-18
    • 2016-06-04
    • 2014-01-12
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多