Author Topic: donde agregar las dependecian al distribuir la aplicacion compilada con maven  (Read 58 times)

gacs

  • Full Member
  • ***
  • Posts: 138
  • Karma: 0
    • View Profile
hice una pequeña aplicacion para probar el uso de maven en netbeans. espesifique las dependencias en el archivo pom, y con eso la aplicación corrio bien en netbeans y creo un archivo jar en la carpeta target.
copie el archivo jar en otra pc para probar si podía correr la aplicación pero no inicia, no manda error pero no inicia. la misma aplicación la compile solo con netbeans sin el plugin de maven y inicia bien, claro que tube que copiar la carpeta lib que agrega netbeans al compilar el jar en la carpeta dist.

con maven no he encontrado donde ubicar esas dependencias para que la aplicación se ejecute, le agradezco cualquier ayuda que me brinden al respecto
Saludos
gacs

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5447
  • Karma: 12
    • View Profile
    • Apuntes de programación
Hola:

El jar se tiene que generar con un fichero de manifiesto que diga cual es la clase main y tiene que tener de alguna forma acceso/saber donde está las librerías (jar) adicionales que necesites.

Aquí tienes varias posibles formas de apañarlo con maven https://www.baeldung.com/executable-jar-with-maven

Saludos.


gacs

  • Full Member
  • ***
  • Posts: 138
  • Karma: 0
    • View Profile
Re: donde agregar las dependecian al distribuir la aplicacion compilada con maven
« Reply #2 on: Septiembre 05, 2018, 04:38:42 am »
no fue facil solucionar los ejemplos encontrados no funcionaban en netbeans, resulta que: 
maven-compiler-plugin: solo se encarga de compilar no de general el archivo de manifiesto
maven-dependency-plugin: se encarga de ver las dependencias estén en el lugar que se especifiquen copiando las del repositorio al directorio especificado
maven-jar-plugin: crea el archivo de manifiesto,  especifica la dirección donde la aplicación buscara las dependencia y la clase principal con la cual arranque el sistema(la que lleva la funcion main())
 
Bueno son conjeturas ya que no he podido encontrar información de cada una de las etiquetas y los valores que reciben por ejemplo la etiqueta goal esta ahi por que los ejemplos que encontré todo la ponían pero no se cual es su función, se que cada plugin trabaja con una cantidad de etiquetas y al igual recibe valores pero no encontrada nada que me diga como jugar con esos valores ni en apache maven he podido encontrar, seguro se debe a mi poco conocimiento en el ingles pero seguiré buscando y comento
Code: [Select]
<build>
         <plugins>
                <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                                <encoding>UTF-8</encoding>
                                  <source>1.8</source>
                                 <target>1.8</target>
                         </configuration>
                 </plugin>
                <plugin>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>install</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory> ${project.build.directory}/lib</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                            <artifactId>maven-jar-plugin</artifactId>
                            <version>3.0.2</version>
                            <configuration>
                                <archive>
                                    <manifest>
                                        <addClasspath>true</addClasspath>
                                        <classpathPrefix>lib/</classpathPrefix>
                                        <mainClass> <!--aqui.poner.la.clase.main --></mainClass>
                                    </manifest>
                                </archive>
                            </configuration>
                    </plugin>
         </plugins>
  </build>
Saludos
gacs

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5447
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: donde agregar las dependecian al distribuir la aplicacion compilada con maven
« Reply #3 on: Septiembre 05, 2018, 04:48:11 pm »
Hola:

Es fácil de encontrar. Aquí por ejemplo tienes los goal de maven-dependency-plugin https://maven.apache.org/plugins/maven-dependency-plugin/plugin-info.html y lo que hace cada uno.  Pinchando el goal ves los posibles parámetros que tiene.

Saludos.

gacs

  • Full Member
  • ***
  • Posts: 138
  • Karma: 0
    • View Profile
Re: donde agregar las dependecian al distribuir la aplicacion compilada con maven
« Reply #4 on: Septiembre 06, 2018, 01:16:17 am »
ni tan facil sensei goal no encuentro traducción en el ingles que significa, por lo menos google me dice goal es un gol  ;D ;D, que eso no me dice mucho. voy a leer lo que me envio gracias
Saludos
gacs

 

ey