2013-01-02 13 views
13

Dự án của tôi đưa ra cảnh báo sau đây:Làm thế nào tôi có thể khắc phục sự cố tốt nhất "phiên bản có khả năng tương thích phụ thuộc" trong SBT

[warn] Potentially incompatible versions of dependencies of {file:/some/path/}default-5bae4a: 
[warn] org.scala-lang: 2.9.2, 2.9.1 

Tôi đã có sự phụ thuộc như sau:

libraryDependencies ++= Seq(
    "io.spray"   % "spray-can"  % "1.0-M3", 
    "io.spray"   % "spray-routing" % "1.0-M3", 
    "io.spray"   % "spray-testkit" % "1.0-M3", 
    "io.spray"   %% "spray-json" % "1.2.3" cross CrossVersion.full, 
    "com.typesafe.akka" % "akka-actor" % "2.0.3", 
    "org.mongodb"   %% "casbah"   % "2.4.1", 
    "com.novus"   %% "salat"   % "1.9.1", 
    "org.specs2"   %% "specs2"  % "1.12.2" % "test", 
    "org.mockito"   % "mockito-all"  % "1.9.0" % "test" 
) 

Tôi đang cố gắng để tìm hiểu cách thức của chúng tôi và loại bỏ sự phụ thuộc org.scala-lang 2.9.1, nhưng nó không dễ dàng như tôi nghĩ. Tôi đang thiếu bí quyết gì?

+0

Tại sao bạn không chỉ vô hiệu hóa phụ thuộc của bạn từng cái một để xem cái nào gây ra sự cố? –

+0

Và nếu tôi biết nó là cái gì? làm thế nào để loại trừ một phiên bản cụ thể của scala-lang? – iwein

Trả lời

9

Trước tiên, bạn cần phải tìm hiểu xem phụ thuộc nào gây ra vấn đề này bằng cách vô hiệu hóa từng cái một. Sau đó, bạn có thể sử dụng một phiên bản của thư viện đó được biên dịch dựa trên 2.9.2 hoặc nếu không có phiên bản như vậy, bạn có thể loại trừ sự phụ thuộc.

Công cụ tuyệt vời để tìm ra sự phụ thuộc nào gây ra sự cố là sbt-dependency-graph.

Để loại trừ sự phụ thuộc bắc cầu, bạn có thể sử dụng phương pháp loại trừ:

libraryDependencies += 
    "com.novus" %% "salat" % "1.9.1" exclude("org.scala-lang", "scalap"), 

Xem here dưới "Loại trừ phụ thuộc bắc cầu".

+0

biểu đồ phụ thuộc đã nói với tôi 'org.scala-lang: scalap: 2.9.1 (bị đuổi bởi: 2.9.2)' đó có thể là thủ phạm không? – iwein

+0

điều thú vị là tôi đã thử loại trừ này chống lại tất cả deps của tôi và nó không hoạt động ... tôi không thể loại trừ toàn bộ tất cả các hiện vật dưới org.scala-lang với phiên bản 2.9.1? – iwein

+0

OK. Cuối cùng. Đã cập nhật câu trả lời để phản ánh bản sửa lỗi cho ngữ cảnh. – iwein

Các vấn đề liên quan