vivo toyota programas korea japan español brasil sbt

sbt - toyota - ¿Cómo mostrar classpath utilizado para ejecutar la tarea?



sbt programas de tv (4)

Agregue la línea lazy val printClasspath ... en su archivo build.sbt.

Luego, en la línea de comandos, ejecute:

sbt printClasspath

¿Cómo se puede mostrar la ruta de clase utilizada para run tarea en SBT 0.13?

He encontrado información aquí https://groups.google.com/forum/#!msg/simple-build-tool/0rhVRPnjyZU/DOYAd14gh1wJ :

Estaba descartando mis rutas de clase como una forma de solucionar problemas de mi compilación recientemente y quizás esta tarea también pueda ayudarte:

lazy val printClasspath = task { this.runClasspath.getPaths.foreach(println); None }

runClasspath es una instancia de PathFinder [1] y puedes interrogarla aún más. Supongo que construir una lista separada por '':'' de esas rutas será fácil.

No entiendo dónde y cómo debo usar este consejo. Por favor avise.


Si escribo esto en la shell sbt:

inspect run

Veo, entre otras salidas:

[info] Dependencies: [info] runtime:fullClasspath

Entonces si escribo:

show runtime:fullClasspath

Me sale como:

List( Attributed(/Users/tisue/Dropbox/repos/euler/target/scala-2.10/classes), Attributed(/Users/tisue/.sbt/boot/scala-2.10.3/lib/scala-library.jar))

¿Cuál es probablemente lo que estabas buscando?

También puede obtenerlo en una forma separada por dos puntos adecuada para usar con java -classpath en la línea de comando:

export runtime:fullClasspath

que imprime por ejemplo:

/Users/tisue/Dropbox/repos/euler/target/scala-2.10/classes:/Users/tisue/.sbt/boot/scala-2.10.3/lib/scala-library.jar


o directamente desde el bash, dash, sh o lo que sea shell:

sbt ''inspect run'' ''show runtime:fullClasspath''

y

sbt "inspect run" "show runtime:fullClasspath"

para la línea de comandos de Windows.


tl; dr Usa la last run o escribe una tarea personalizada.

última carrera

Con la last run deberías ver el classpath completo:

[info] Running main.Main [debug] Waiting for threads to exit or System.exit to be called. [debug] Classpath: [debug] /Users/jacek/work/ingrifo/dictionary-spray/target/scala-2.11/classes [debug] /Users/jacek/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.4.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-can_2.11/bundles/spray-can_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-io_2.11/bundles/spray-io_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-util_2.11/bundles/spray-util_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-http_2.11/bundles/spray-http_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/org.parboiled/parboiled-scala_2.11/bundles/parboiled-scala_2.11-1.1.6.jar [debug] /Users/jacek/.ivy2/cache/org.parboiled/parboiled-core/bundles/parboiled-core-1.1.6.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-routing_2.11/bundles/spray-routing_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-httpx_2.11/bundles/spray-httpx_2.11-1.3.2.jar [debug] /Users/jacek/.ivy2/cache/org.scala-lang.modules/scala-xml_2.11/bundles/scala-xml_2.11-1.0.2.jar [debug] /Users/jacek/.ivy2/cache/org.jvnet.mimepull/mimepull/jars/mimepull-1.9.4.jar [debug] /Users/jacek/.ivy2/cache/com.chuusai/shapeless_2.11/jars/shapeless_2.11-1.2.4.jar [debug] /Users/jacek/.ivy2/cache/io.spray/spray-json_2.11/bundles/spray-json_2.11-1.3.1.jar [debug] /Users/jacek/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/jars/akka-actor_2.11-2.3.6.jar [debug] /Users/jacek/.ivy2/cache/com.typesafe/config/bundles/config-1.2.1.jar [debug] Waiting for thread run-main-0 to terminate. [debug] Thread run-main-0 exited. [debug] Waiting for thread default-akka.actor.default-dispatcher-4 to terminate.

Tarea personalizada para volcar CLASSPATH

Si necesita ver de qué depende la tarea de run , utilice inspect .

[fullclasspath]> inspect run [info] Input task: Unit [info] Description: [info] Runs a main class, passing along arguments provided on the command line. [info] Provided by: [info] {file:/Users/jacek/sandbox/so/fullClasspath/}fullclasspath/compile:run [info] Defined at: [info] (sbt.Defaults) Defaults.scala:704 [info] Dependencies: [info] compile:run::streams [info] runtime:fullClasspath [info] compile:run::runner [info] compile:run::mainClass [info] Delegates: [info] compile:run [info] *:run [info] {.}/compile:run [info] {.}/*:run [info] */compile:run [info] */*:run [info] Related: [info] test:run

En Dependencies está el valor runtime:fullClasspath , que significa que la run depende de su valor.

Según la help SBT, fullClasspath es ...

[fullclasspath]> help fullClasspath The exported classpath, consisting of build products and unmanaged and managed, internal and external dependencies.

Simplemente necesita analizar el valor de la configuración de runtime:fullClasspath de runtime:fullClasspath .

[fullclasspath]> show runtime:fullClasspath [info] Updating {file:/Users/jacek/sandbox/so/fullClasspath/}fullclasspath... [info] Resolving org.fusesource.jansi#jansi;1.4 ... [info] Done updating. [info] List(Attributed(/Users/jacek/sandbox/so/fullClasspath/target/scala-2.10/classes), Attributed(/Users/jacek/.sbt/boot/scala-2.10.3/lib/scala-library.jar)) [success] Total time: 0 s, completed Feb 13, 2014 1:27:38 AM

Para tener un resultado más analizable, use la siguiente tarea que lee fullClasspath como se define para el alcance del runtime ( Runtime en el código de Scala / SBT):

lazy val printClasspath = taskKey[Unit]("Dump classpath") printClasspath := { (fullClasspath in Runtime value) foreach { e => println(e.data) } }

Desafortunadamente, la configuración de Runtime está codificada y creo que una tarea de entrada para aceptar una configuración lo haría mucho mejor.