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. ¿Hay una manera fácil de capturar todas las pulsaciones de teclas de marco/ventana en Python o wxPython
- 19. En una aplicación MFC, ¿cuál es la forma más fácil de copiar un archivo de un directorio a otro?
- 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. ¿Hay una manera fácil de observar las celdas visibles en una UITableView?
- 30. Hadoop Copiar un directorio?
¿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