2012-08-05 31 views
7

Tôi đang sử dụng sbt 0.12 RC2.Làm thế nào để tìm ra nơi sbt giải quyết các phụ thuộc từ?

Dự án của tôi có một loạt các phụ thuộc thư viện và một số trong số này kích hoạt các phụ thuộc khác. Một số phụ thuộc không được quản lý (trong lib/), một số trong kho lưu trữ .ivy2 cục bộ của tôi, một số được tìm thấy trong các kho lưu trữ từ xa khác nhau.

Tôi đang tìm kiếm một sbt update-verbose hoặc tương tự mà sẽ cho tôi biết chính xác nơi SBT tìm thấy mỗi tập tin JAR khi nó nói:

[info] Resolving com.nicta#sbt-scoobi;0.0.1 ... 
[info] Resolving org.scala-lang#scala-library;2.9.2 ... 
[info] Resolving org.apache.opennlp#opennlp-maxent;3.0.1-incubating ... 
[info] Resolving jwnl#jwnl;1.3.3 ... 
+0

liên quan: https://stackoverflow.com/questions/21111989/how-to-find-out-which-dependency-caused-a-particular-library-to-be-downloaded – Matt

Trả lời

0

Bạn có thể sử dụng để hiển thị show compile:dependency-classpath nơi depedencies là

+0

Điều đó không mang lại cho tôi những gì Tôi đang tìm kiếm. Nó chỉ liệt kê classpath Java. Tôi muốn biết, ví dụ: cho một phụ thuộc 'com.nicta # sbt-scoobi; 0.0.1', nó thực sự đến từ đâu (ví dụ thư mục' lib/'không được quản lý, kho lưu trữ' ~/.ivy2' cục bộ, địa phương '~/.m2' kho lưu trữ, một kho lưu trữ Ivy2 hoặc Maven từ xa cụ thể, v.v.). –

+0

'Được phân bổ (/Users/guillaume/.ivy2/cache/org.specs2/specs2_2.9.1/jars/specs2_2.9.1-1.11.jar)' do đó cái này là từ '~/.ivy2' –

+3

Không, đó là bộ nhớ cache . Đó không phải là nguồn gốc. Nó không cho bạn biết liệu nó có nguồn gốc cục bộ hay từ xa hay từ đâu. –

0

Các chi tiết về nhiệm vụ cuối cùng có thể được gọi lại bằng cách chạy lần cuối

Chi tiết và thông tin thêm tại đây:

Configure and use logging

0

Tôi không chắc chắn nếu điều này áp dụng đối với SBT 0.12.x, nhưng trong 0.13.x, nếu bạn có thể tìm thấy nơi thư viện của bạn sống ở trong cơ cấu ~/.ivy/cache/... thư mục, thư mục cha của thư viện có một file có tên ivydata-x.y.z.properties chứa URL nơi nó tìm thấy sự phụ thuộc.

Ví dụ, nếu bạn nhớ cache cho akka-streams trông như thế này:

.ivy2 
└── cache 
    └── com.typesafe.akka 
     └── akka-stream_2.11 
      ├── docs 
      │   └── akka-stream_2.11-2.4.14-javadoc.jar 
      ├── jars 
      │   └── akka-stream_2.11-2.4.14.jar 
      └── srcs 
       └── akka-stream_2.11-2.4.14-sources.jar 

bạn nên tìm một tập tin như thế này, có chứa tải URL:

.ivy2 
└── cache 
    └── com.typesafe.akka 
     └── akka-stream_2.11 
      └──ivydata-2.4.14.properties 
2

sbt tạo ra một báo cáo rất phong phú về cách chính xác các phụ thuộc đã được giải quyết trong target/resolution-cache/reports. Mở một trong các tệp .xml trong trình duyệt web và bạn sẽ thấy tất cả các chi tiết bạn cần.

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