build - Leiningen tiene problemas para construir un uberjar de trabajo
clojure (1)
Mi comprensión al leer los comentarios en ese tema es que su problema desaparecería si agrega lo siguiente a su project.clj
:uberjar-exclusions [#"foo.sf"]
donde foo.sf
es el archivo .sf particular que desea ignorar del contenedor. Puede determinar esto ejecutando:
unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "/.sf"
El comando zip
sugerido elimina el archivo particular del archivo jar (que es del formato ZIP).
Estamos tratando de construir nuestro proyecto Clojure con Leiningen. Hemos logrado crear un uberjar haciendo lo siguiente:
condiciones previas:
- El archivo project.clj enumera dependencias
-
:main my-project.core
en project.clj - un archivo core.clj con una función
-main
-
(:gen-class :main true)
en core.clj
procedimiento:
- corrió
lein test
; completado sin fallas - corrió
lein deps
; Completado satisfactoriamente - del directorio de project.clj: rain
lein uberjar
- Esto creó dos archivos jar: My-Project-1.0.0-SNAPSHOT-standalone.jar y My-Project-1.0.0-SNAPSHOT.jar.
- corrió
java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar
, que resultó en esta excepción:
Excepción en el hilo "principal" java.lang.SecurityException: resumen de archivo de firma inválido para los atributos principales de Manifest
Mi investigación sobre este problema no ha sido fructífera. Aparentemente , es un problema conocido sin una buena solución. No entiendo las respuestas allí.
¿Qué tenemos que hacer para que nuestro uberjar funcione?
- determinar cuál de nuestras dependencias está causando el problema?
- eliminar dependencias de nuestro proyecto?
- compilar el proyecto de otra manera?
- parche leiningen?
- use el comando sugerido:
zip *-standalone.jar -d META-INF/DUMMY.SF
(no tengo idea de qué hace esto) - hacer algo con
:uberjar-exclusions
en el archivo project.clj? (¿entonces qué?)
Lein y Java versiones:
$ lein version
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM
Actualización: ejecutar el comando sugerido da:
$ unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "/.sf"
49911 08-27-09 15:57 META-INF/RCSB-PDB.SF
0 03-23-10 08:21 META-INF/maven/net.sf.alxa/
0 03-23-10 08:21 META-INF/maven/net.sf.alxa/jlatexmath/
929 03-23-10 08:20 META-INF/maven/net.sf.alxa/jlatexmath/pom.xml
115 03-21-10 14:01 META-INF/maven/net.sf.alxa/jlatexmath/pom.properties
175241 08-17-11 20:25 META-INF/SELFSIGN.SF
0 09-21-09 06:45 META-INF/maven/net.sf.opencsv/
0 09-21-09 06:45 META-INF/maven/net.sf.opencsv/opencsv/
5510 09-21-09 06:44 META-INF/maven/net.sf.opencsv/opencsv/pom.xml
106 09-21-09 06:45 META-INF/maven/net.sf.opencsv/opencsv/pom.properties