Mi jar no se está ejecutando, puedo decir que intenta ejecutarse cuando el archivo log4j logra crear la carpeta de registro pero luego no pasa nada y el registro está en blanco.Maven jar ejecutable con bibliotecas en ruta externa
Mi problema es que tengo el archivo jar en una carpeta llamada bin y las bibliotecas en una carpeta llamada lib
estoy triying esto:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${staging.dir}/bin</outputDirectory>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addClasspath>true</addClasspath>
<mainClass>com.Main</mainClass>
<classpathPrefix>../lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
y
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${staging.dir}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
También probé con maven-assembly-plugin, pero empaqueta todo en el jar y realmente necesito tener las carpetas bin y lib
¿Qué debo configurar para que funcione correctamente?
EDIT: archivo META-INF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: me
Build-Jdk: 1.6.0_26
Main-Class: com.Main
Class-Path: ../lib/ojdbc6-11.2.0.jar ../lib/sqljdbc4-4.2.0.jar ../lib/
mysql-connector-java-5.1.17.jar ../lib/hibernate-core-3.6.5.Final.jar
../lib/antlr-2.7.6.jar ../lib/commons-collections-3.1.jar ../lib/dom
4j-1.6.1.jar ../lib/hibernate-commons-annotations-3.2.0.Final.jar ../
lib/hibernate-jpa-2.0-api-1.0.0.Final.jar ../lib/jta-1.1.jar ../lib/s
lf4j-api-1.6.1.jar ../lib/hibernate-entitymanager-3.6.5.Final.jar ../
lib/cglib-2.2.jar ../lib/asm-3.1.jar ../lib/javassist-3.12.0.GA.jar .
./lib/slf4j-log4j12-1.6.1.jar ../lib/log4j-1.2.16.jar ../lib/commons-
codec-1.5.jar ../lib/lablib-checkboxtree-3.3-20110114.141734-3.jar
SOLUCIÓN
resulta que el archivo META-INF es incorrecta. La razón es que maven-archivador-plugin cambia el nombre de las bibliotecas de fotografiado con una marca de tiempo como el comportamiento por defecto
para anular que el uso de este, según las instrucciones del documento Maven Archiver:
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addClasspath>true</addClasspath>
<useUniqueVersions>false</useUniqueVersions>
<mainClass>com.Main</mainClass>
<classpathPrefix>../lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
aparte de eso, espero que la gente encuentre útil el código maven al principio porque funciona, solo tenga cuidado con las SNAPSHOTS en sus proyectos
¿Cómo se ve tu archivo MANIFEST? ¿También has colocado los frascos dependientes en la carpeta lib? – Raghuram
todo está allí y el MANIFIESTO se ve bien, solo adjuntar para editar en este momento – javaNoober
youa re right es un problema META-INF, mi última lib es lablib-checkboxtree-3.3-SNAPSHOT.jar, intenté ejecutar el jar en la consola y puedo no encuentras la biblioteca Traté de eliminar y volver a descargar la lib, pero sigue colocando el numebr en lugar de la palabra SNAPSHOT, ¿por qué? – javaNoober