在引入依赖关系时,Sbt使用超过512mb的RAM

时间:2015-07-17 19:08:57

标签: scala sbt

所以我试图在512mb Digital Ocean服务器上编译和运行scala项目。基本上,我遇到的问题是,当它开始编译时,它会拉入所有依赖项,并最终耗尽内存。这是正常的吗?我知道我想要运行的项目不需要超过512mb,并且为了使其编译而不得不增加大小将是一种耻辱。我在这里做错了吗?

这是我的build.sbt,请注意这是使用sbt.version 13.8

scalaVersion := "2.10.2"

libraryDependencies ++= {
  val akkaV = "2.1.4"
  val sprayV = "1.1.1"
  Seq(
    "com.typesafe.akka"      %%  "akka-actor"        % akkaV,
    "com.typesafe.akka"      %%  "akka-testkit"      % akkaV   % "test",
    "org.specs2"             %%  "specs2-core"       % "2.3.9" % "test",
    "org.twitter4j"          %   "twitter4j-stream"  % "4.0.2",
    "io.spray"               %   "spray-can"         % sprayV,
    "io.spray"               %   "spray-routing"     % sprayV,
    "io.spray"               %   "spray-client"      % sprayV,
    "io.spray"               %   "spray-testkit"     % sprayV,
    "io.spray"               %   "spray-json_2.10"   % "1.2.5",
    "com.github.nscala-time" %%  "nscala-time"       % "1.4.0",
    "com.codahale.metrics"   %   "metrics-core"      % "3.0.1",
    "org.elasticsearch"      %   "metrics-elasticsearch-reporter" % "2.0"
  )
}

enablePlugins(JavaAppPackaging)

//settings(com.typesafe.sbt.SbtNativePackager.packageArchetype.java_application: _*)

Revolver.settings

1 个答案:

答案 0 :(得分:0)

你可以使用技巧。 Sbt对虚拟内存有要求(它忽略了低值的jvm堆选项),因此打开交换空间(在DO映像中默认禁用它)。如果实际内存足够,则对性能没有影响。