2015-12-26 24 views
19

Tôi là người dùng mới đối với Scala, theo cách tạo dự án scala sbt.Scala sbt: Nhiều phụ thuộc trong sbt

https://www.youtube.com/watch?v=Ok7gYD1VbNw


Sau khi thêm

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test" 

để build.sbt, và làm mới dự án, tôi nhận được msg này.

[cảnh báo] Nhiều phụ thuộc với cùng một tổ chức/tên nhưng các phiên bản khác nhau. Để tránh xung đột, chọn một phiên bản:

[cảnh báo] * org.scala-lang: scala-phản ánh: (2.11.2, 2.11.7)

[cảnh báo] * org.scala-lang.modules : scala-xml_2.11: (1.0.2, 1.0.4)

Và trong build.sbt, từ thw 'scalatest' là màu đỏ có nghĩa là nó là một phụ thuộc chưa được giải quyết.

Tôi có nên thay đổi điều gì đó trong Cài đặt dự án, như scala sdk không?

Trân trọng!

+0

ngay sau khi nó cảnh báo nó không phải là một vấn đề. kiểm tra 'error's. Nếu có - in chúng ở đây. – Rumoku

+0

Nếu bạn sử dụng IntellJ Idea, mọi thứ có thể có màu đỏ trong 'build.sbt', nhưng nó vẫn sẽ biên dịch. Trình phân tích cú pháp của IDE đôi khi không thể phân tích cú pháp nội dung (mã scala), vì vậy thông thường bạn chỉ có thể bỏ qua các công cụ màu đỏ miễn là nó biên dịch. Điều này cũng đúng với các IDE khác. – Archeg

+0

@Archeg Nếu cấu hình của tôi là đúng, tôi có thể chạy tệp thử nghiệm, phải không? Tại thời điểm này, tôi thậm chí không thể có 'chạy' trong IDE trong khi nhấp chuột phải vào tập tin. –

Trả lời

23

Bạn có thể xem thêm những người phụ thuộc:

libraryDependencies ++= Seq(
    "org.scala-lang" % "scala-reflect" % "2.11.7", 
    "org.scala-lang.modules" % "scala-xml_2.11" % "1.0.4" 
) 

Nó buộc trình biên dịch để lựa chọn phiên bản cụ thể của thư viện. Nó giải quyết vấn đề cho tôi.

+2

Tôi tự hỏi tại sao ý tưởng không thể tự tìm ra chính nó với 'scalaVersion: =" 2.11.7 "' trong 'build.sbt' –

+0

Công việc này hầu hết thời gian tuy nhiên tôi gặp vấn đề với phiên bản '1.0.4' và' 1.0 .5' của 'org.scala-lang.modules: scala-xml'. Tôi đã đi xa như thanh toán bù trừ chúng từ bộ nhớ cache Ivy nhưng không có kết quả tích cực. – ZbyszekKr

+0

Cảm ơn bạn, đã làm việc cho tôi – vasigorc

6

Tôi đã có thể giải quyết vấn đề này bằng cách loại trừ những điều này khỏi phụ thuộc scalatest.

libraryDependencies ++= Seq(
    "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test" 
    exclude("org.scala-lang", "scala-reflect") 
    exclude("org.scala-lang.modules", "scala-xml_2.11") 
) 
+1

Tôi thích điều này được nêu trong câu trả lời của Bartłomiej Szałach. – ivanorone

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