sbt 项目解决依赖关系非常慢

问题描述 投票:0回答:2

我的 sbt 项目需要超过 15 分钟

sbt clean compile

我使用的是 AWS 上的一台强大的机器。我相当确定这不是 cpu 或互联网带宽的资源问题。另外,我已经运行此命令几次,因此 ivy 缓存已填充。

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

/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"
)

/项目/build.properties

sbt.version = 0.13.8

/项目/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/"

/项目/Assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
scala sbt
2个回答
0
投票

在日志中您是否看到类似以下的条目:

[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,我得到了大约 5 秒的时间

clean
,然后是
update

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

0
投票

更新到当前的 sbt(撰写本文时为 1.9)应该会改善这一点。在 1.x 系列中,依赖解析开始使用新的后端,速度显着加快。

© www.soinside.com 2019 - 2024. All rights reserved.