2012-08-05 15 views
7

Estoy usando sbt 0.12 RC2.¿Cómo averiguar de dónde sbt resuelve dependencias?

Mi proyecto tiene varias dependencias de biblioteca y algunas de ellas desencadenan otras dependencias. Algunas de estas dependencias no están administradas (en lib/), algunas están en mi repositorio local .ivy2, algunas se encuentran en varios repositorios remotos.

Busco un sbt update-verbose o similar que me diga exactamente donde SBT encuentra cada archivo JAR cuando dice:

[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

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

Respuesta

0

Puede utilizar show compile:dependency-classpath para mostrar dónde están los depedencies

+0

Eso no me da qué Estoy buscando. Solo enumera el classpath de Java. Me gustaría saber, p. para una dependencia 'com.nicta # sbt-scoobi; 0.0.1', de donde viene realmente (por ejemplo, el directorio' lib/'no administrado, el repositorio' ~/.ivy2' local, el '~/.m2 local' repositorio, un repositorio remoto específico Ivy2 o Maven, etc.). –

+0

'Attributed (/Users/guillaume/.ivy2/cache/org.specs2/specs2_2.9.1/jars/specs2_2.9.1-1.11.jar)' así que este es de '~/.ivy2' –

+3

No, ese es el caché . Esa no es la fuente. No le dice si se originó local o remotamente, o desde dónde. –

0

no estoy seguro de si esto se aplica a sbt 0.12.x, pero en 0.13.x, si se puede encontrar en su biblioteca vive en ~/.ivy/cache/... en la estructura de directorio, el directorio principal de la biblioteca tiene un archivo llamado ivydata-x.y.z.properties que contiene la URL donde encontró la dependencia.

Por ejemplo, si se hace una caché de akka-streams se parece a esto:

.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 

que debe encontrar un archivo de este tipo, que contiene descarga URL:

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

sbt genera un muy extenso informe sobre cómo exactamente las dependencias se resolvieron en target/resolution-cache/reports. Abra uno de los archivos .xml en un navegador web, y debería ver todos los detalles que necesita.

Cuestiones relacionadas