Al cambiar de una de las versiones anteriores de SBT a la última versión, perdimos nuestra capacidad de capturar rápidamente todas las dependencias de jar y copiarlas en un directorio. ¿Hay alguna manera fácil de hacer lo mismo en XSBT 0.11.2?¿Hay una manera fácil de copiar todas las dependencias de jar a un cierto directorio en XSBT 0.11.2?
¿Hay una manera fácil de copiar todas las dependencias de jar a un cierto directorio en XSBT 0.11.2?
Respuesta
Quizás mi respuesta a esta pregunta lo ayude: Is there a way to get all dependencies of the project via sbt plugin? Esta es la forma más fácil que conozco (estoy usando sbt 0.11.2).
Utilizamos una definición de tarea personalizada similar a esta para copiar los archivos jar. No tengo idea de si esta es la forma recomendada de hacerlo: hay un feo collect
allí. Siéntase libre de publicar mejoras (o modificar mi respuesta en línea si lo desea).
copyJarsFolder <<= (crossTarget in (Compile, packageBin)).apply(_/"jars")
copyJars <<= inputTask { (argTask: TaskKey[Seq[String]]) =>
(copyJarsFolder, dependencyClasspath in Compile) map { (folder, cpEntries) =>
("mkdir -p " + folder).!
//
// find all dependencies
val jars = cpEntries.collect {
case attrFile if attrFile.metadata.keys.exists(_.label == "artifact") =>
// probably an external jar
attrFile.data
}
val copyCmd = jars.mkString("cp -p ", " ", " " + folder)
copyCmd.!
folder
}
}
Agregar lo siguiente en sus build.sbt
copia todas las dependencias en una carpeta lib_managed
en la raíz de su proyecto.
retrieveManaged := true
¿Eso es lo que estás pidiendo?
Véase también esto: How to declare a project dependency in SBT 0.10?
sí, se agrega
retrieveManaged := true
y verá los frascos en la carpeta lib_managed
Uso SBT 0.13.7, IO.copy y amigos.
Definir algunos valores en algún lugar de su definición construcción:
val copyOutpath = settingKey[File]("Where to copy all libs and built artifact") val copyAllLibsAndArtifact = taskKey[Unit]("Copy runtime dependencies and built artifact to 'copyOutpath'")
definir el comportamiento de estos valores:
lazy val myProject = project .in(file(".")) .settings( copyOutpath := baseDirectory.value/"specialFolderForMyProgram", copyAllLibsAndArtifact := { val allLibs: List[File] = dependencyClasspath.in(Runtime).value.map(_.data).filter(_.isFile).toList val buildArtifact: File = packageBin.in(Runtime).value val jars: List[File] = buildArtifact :: allLibs val `mappings src->dest`: List[(File, File)] = jars.map(f => (f, maxDynamicJarDir.value/f.getName)) val log = streams.value.log log.info(s"Copying to ${copyOutpath.value}:") log.info(s" ${`mappings src->dest`.map(_._1).mkString("\n")}") IO.copy(`mappings src->dest`) }, libraryDependencies ++= Seq( //... ) )
¿No quiere decir 'copyOutpath' en lugar de' maxDynamicJarDir'? – nob
- 1. Cómo copiar las dependencias jar (sin jars de prueba) a un directorio usando maven?
- 2. empaquetado de jruby script en jar con todas las dependencias?
- 3. Maven para copiar JAR al agregar dependencias
- 4. Herramientas para encontrar todas las dependencias en Java jar
- 5. ¿Hay una manera fácil de copiar un iterador en una lista en Java?
- 6. ¿Hay alguna manera en Spring para autocablear todas las dependencias de un tipo determinado?
- 7. ¿Hay alguna manera de obtener todas las dependencias del proyecto a través del plugin sbt?
- 8. Building JAR que incluye todas sus dependencias
- 9. ¿Hay una manera fácil de copiar el contenido de TDictionary en otro?
- 10. Incluyendo todas las dependencias
- 11. Android: ¿hay alguna manera fácil de encontrar todas las cadenas en mi proyecto?
- 12. Manera fácil de cargar las dependencias de Rebar del proyecto en el shell de Erlang
- 13. ¿Hay una manera de PIP para instalar sólo las nuevas dependencias en un requirements.txt actualizado
- 14. ¿Hay una buena manera de copiar un widget Gtk?
- 15. Analizar dependencias JAR en un proyecto Java
- 16. Ant copy classpath jar a un directorio
- 17. Descarga de todas las dependencias para un módulo de Perl
- 18. En una aplicación MFC, ¿cuál es la forma más fácil de copiar un archivo de un directorio a otro?
- 19. ¿Hay una manera fácil de capturar todas las pulsaciones de teclas de marco/ventana en Python o wxPython
- 20. ¿Hay alguna manera de enumerar dependencias de tareas en Gradle?
- 21. ¿Hay alguna manera de determinar automáticamente las dependencias al configurar un archivo de control dpkg?
- 22. forzar a Maven a copiar dependencias en target/lib
- 23. ¿Hay alguna manera fácil de convertir Criteria a HQL?
- 24. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 25. Descargar todas las dependencias gems
- 26. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 27. Buscar todas las columnas de un cierto tipo en todas las tablas en una base de datos SQL Server
- 28. ¿Hay una manera simple de eliminar las dependencias no utilizadas de un maven pom.xml?
- 29. Hadoop Copiar un directorio?
- 30. ¿Hay una manera fácil de observar las celdas visibles en una UITableView?
¿Eso también copiar los frascos de los otros módulos de una cierto módulo depende de? (Por ejemplo, si tengo un proyecto que contiene tres módulos, y el tercer módulo depende de los otros dos módulos, me daría un directorio 'lib_managed' que contiene el cierre transitivo completo de todas las bibliotecas de las que depende el módulo, incluidos los módulos; el otro dos módulos y * sus * dependencias en ese proyecto? –
@Wilfred Sí, lib_managed contendrá cada jar requerido por su proyecto. Eso significa sus dependencias directas y todas las dependencias transitivas. – dhg