2015-08-12 11 views
9

Mój projekt SBT trwa dłużej niż 15 minut, kiedy robięprojekt SBT jest bardzo powolny, aby rozwiązać zależności

sbt clean compile 

jestem na beefy maszynie na AWS. Jestem dość pewny, że nie jest to problem z zasobami na przepustowość procesora lub Internetu. Ponadto uruchomiłem to polecenie kilka razy i stąd pamięć podręczna bluszcza jest zapełniona.

Oto wszystkie moje kompilacji związanych pliki

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

/projekt/assembl y.sbt

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

Czy uruchomiłeś 'sbt -v ', aby uzyskać szczegółowe wyniki sbt? To może dać twoją wskazówkę, które moduły potrzebują czasu, aby rozwiązać lub które repozytoria. Uwaga: kilka repozytoriów * artifactoryonline.com * zostało przeniesionych do * bintray.com * i zostało niedawno wyłączonych. –

+0

, więc jest powolny, nawet jeśli artefakty są już w pamięci podręcznej bluszcz? – Mysterion

+1

Mamy ten sam problem. Korzystanie ze scala 2.11.7 i sbt 13.9. Rozdzielczość DNS jest szybka <3ms. Ale faktyczne rozstrzygnięcie każdej zależności trwa kilka sekund ... i w dużym projekcie, który może wynosić pół godziny. –

Odpowiedz

1

w dzienniku widzisz wpisy typu:

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

To znak, że jesteś pobierania tych artefaktów. Innymi słowy, uruchamiany AMI nie ma zapełnionej pamięci podręcznej bluszczu.

Używając sbt 0.13.12 na moim laptopie z dyskiem SSD, otrzymuję około 5s dla clean, a następnie 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 
Powiązane problemy