如何找出sbt从哪里解决依赖关系?
我正在使用sbt 0.12 RC2
。如何找出sbt从哪里解决依赖关系?
我的项目有一堆库依赖项,其中一些触发其他依赖项。其中一些依赖项是非托管的(在lib/
中),其中一些在我的本地.ivy2
存储库中,一些存在于各种远程存储库中。
我正在寻找一个sbt update-verbose
或相似,这可以告诉我究竟在何处发现SBT每个JAR文件时,它说:
[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 ...
您可以使用show compile:dependency-classpath
显示在depedencies是
这并不能给我什么我在找。它只是列出了Java类路径。我想知道,例如对于依赖关系'com.nicta#sbt-scoobi; 0.0.1',它实际上来自于它(例如非托管的'lib /'目录,本地'〜/ .ivy2'版本库,本地'〜/ .m2'存储库,特定的远程Ivy2或Maven存储库等)。 – 2012-08-05 21:44:44
'归因于(/Users/guillaume/.ivy2/cache/org.specs2/specs2_2.9.1/jars/specs2_2.9.1-1.11.jar)'所以这个来自'〜/ .ivy2' – 2012-08-05 23:34:40
不,这就是缓存。这不是来源。它不会告诉你它是从本地还是远程发起,或者从哪里发起。 – 2012-08-08 13:52:03
我不知道这是否适用于SBT 0.12.x,但在0.13.x,如果你能找到你的地方居住图书馆在~/.ivy/cache/...
目录结构,该库的父目录中有一个名为文件ivydata-x.y.z.properties
其中包含它找到依赖关系的URL。
例如,如果您缓存akka-streams
看起来是这样的:
.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
,你应该找到这样一个文件,其中包含下载网址:
.ivy2
└── cache
└── com.typesafe.akka
└── akka-stream_2.11
└──ivydata-2.4.14.properties
sbt
产生了如何一个非常广泛的报告完全依赖关系已在target/resolution-cache/reports
中解决。在网络浏览器中打开.xml
文件之一,您应该看到所有需要的细节。
相关:https://*.com/questions/21111989/how-to-find-out-which-dependency-caused-a-particular-library-to-be-downloaded – Matt 2016-08-13 10:03:39