2015-08-12 17 views
9

dự án SBT của tôi mất hơn 15 phút khi tôi làmdự án SBT là rất chậm chạp trong việc giải quyết phụ thuộc

sbt clean compile 

Tôi đang trên một máy lực lưỡng trên AWS. Tôi khá chắc chắn nó không phải là một vấn đề tài nguyên trên cpu hoặc băng thông internet. Ngoài ra, tôi đã chạy lệnh này một vài lần và do đó bộ nhớ đệm ivy được phổ biến.

Dưới đây là tất cả của tôi xây dựng liên quan đến file

/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/assembl y.sbt

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

Bạn có chạy 'sbt -v 'để nhận được một số đầu ra sbt tiết? Nó có thể cung cấp cho bạn một gợi ý mà các mô-đun mất nhiều thời gian để giải quyết hoặc kho lưu trữ nào. Lưu ý: một vài kho lưu trữ tại * artifactoryonline.com * đã được di chuyển sang * bintray.com * và đã bị đóng cửa gần đây. –

+0

vì vậy, nó chậm ngay cả khi hiện vật đã có trong bộ nhớ đệm ivy? – Mysterion

+1

Chúng tôi có cùng một vấn đề. Sử dụng scala 2.11.7 & sbt 13.9. Độ phân giải DNS nhanh chóng <3ms. Nhưng sự giải quyết thực sự của mỗi phụ thuộc mất vài giây ... và trong một dự án lớn có thể là nửa giờ. –

Trả lời

1

Trên log làm bạn thấy các mục như:

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

Đó là một dấu hiệu cho thấy bạn đang tải những đồ tạo tác. Nói cách khác, AMI bạn đang tung ra không có bộ nhớ cache của Ivy.

Sử dụng sbt 0.13.12 trên máy tính xách tay của tôi với SSD, tôi nhận được khoảng 5s cho clean và sau đó 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 
Các vấn đề liên quan