Para poder alcanzar este objetivo, lo que tenemos que conseguir es que el fichero MANIFEST configure el classpath indicando las librerías de las que depende. Esto se consigue configurando el plugin maven-jar-plugin:
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ... <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <!-- Opcional, sirve para indicar la clase Main --> <mainClass>org.dg.view.Main</mainClass> </manifest> </archive> </configuration> </plugin> ... </plugins> ... </build> ... </project>
Como puede observarse, simplemente tenemos que indicarle que añada el classpath al fichero MANIFEST y que el prefijo de las librerías será 'lib/'. De esta forma, si nos situamos en el directorio 'target' donde se encuentra el JAR generado de nuestro proyecto, podemos ejecutarlo (mediante 'java -jar proyecto.jar' por ejemplo) y las librerías de las que depende serán encontradas en el directorio 'target/lib'.
Además, se ha incluído el elemento para configurar la clase Main:
<mainClass>org.dg.view.Main</mainClass>
Espero que os sirva de ayuda.
2 comentarios:
Me ayudó, gracias por compartir la info.
Hola, muy bueno el ejemplo!, gracias.
Te hago una consulta, como puedo hacer para que la carpeta lib me quede dentro del jar?
Muchas gracias!
Publicar un comentario