Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Maven a un proyecto normal

Estas en el tema de Maven a un proyecto normal en el foro de Java en Foros del Web. Estoy comenzando con Maven y me gusta muchisimo la idea de repositorios y de la flexibidad para cualquier IDE que se quiera trabajar. Me ha ...
  #1 (permalink)  
Antiguo 14/08/2013, 05:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 1
Pregunta Maven a un proyecto normal

Estoy comenzando con Maven y me gusta muchisimo la idea de repositorios y de la flexibidad para cualquier IDE que se quiera trabajar.

Me ha surgido una duda con el tema de los repositorios, digamos que tengo un escenario donde estoy trabajando en un proyecto y derrepente el jefe me dice que él quiero terminarlo pero este no quiere saber nada de maven, ni que se la presente :P, simplemente quiere que se lo pase como un proyecto java "normal" (Eclipse), me nace la siguiente duda ¿Maven tiene la opción de emitir todas esas librerias con que se han estado trabajando del pom al proyecto "normal"?.
  #2 (permalink)  
Antiguo 14/08/2013, 07:54
 
Fecha de Ingreso: mayo-2013
Ubicación: Armenia, Quindio, Colombia,
Mensajes: 95
Antigüedad: 11 años
Puntos: 3
Respuesta: Maven a un proyecto normal

PUes claro. Yo por ejemplo utilizo eclipse para programar pero Maven lo utilizo desde el cmd por lo que se vuelven independientes. Cuando necesito empaquetar y todo lo hago con mvn -install. Pero para codificar sigo utilizando eclipse y si quiero empaquetar lo exporto como war o ear. Bueno esto te lo digo porque Eclipse también tiene un plugg-in para Maven y para este caso si se vuelve mas tedioso si alguien quiere seguir en ese mismo eclipse. Intenta seguir el proyecto normalmente sin Maven y nos comentas como te va. Saludos
  #3 (permalink)  
Antiguo 14/08/2013, 17:50
 
Fecha de Ingreso: agosto-2012
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Maven a un proyecto normal

El proyecto lo he creado con el siguiente comando:

Código PHP:
mvn archetype:create -DgroupId=com.chuidiang -DartifactId=proyecto1 -Dpackaging=jar 
He modificado el pom y agregado unas cuantas dependencias. Entonces, al poner mvn package o install este me genera el jar con la terminación SNAPSHOT. Dentro del META-INF y algunos directorios más abajo está el pom.properties y el pom.xml, deduzco qué el que quiera usar ese jar debe tener el maven en su pc.

En resumen, cuando uno tiene un proyecto y quiere pasarlo a maven este tiene que agregar las librerias que ha usado a las dependencias del pom pero qué pasa si es al revés y se requiere poner las dependencias que están en el pom a ya sea un directorio llamado lib con las librerias usadas, digamos si estamos trabajando en un proyecto con 30 librerías, manualmente sería un poco engorroso pero qué pasa si son varios proyectos a pasar de maven a un proyecto normal el trabajo sería mucho más, entonces vuelvo a preguntar. ¿Maven tiene la opción de transferir todas esas librerias(.jars) con que se han estado trabajando en el pom a un directorio lib como es el caso de web, del proyecto "normal"?.
  #4 (permalink)  
Antiguo 14/08/2013, 22:18
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Maven a un proyecto normal

Hola,

Posiblemente te sea de alguna ayuda,

https://maven.apache.org/plugins/maven-eclipse-plugin/

Saludos,
  #5 (permalink)  
Antiguo 14/08/2013, 22:41
 
Fecha de Ingreso: agosto-2012
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Maven a un proyecto normal

El plugin de maven para eclipse(mvn eclipse:eclipse) te permite hacer operaciones que lo hacías con comando pero recuerda que el caso que puse "El jefe no quiere saber nada de maven", se podría decir que quiere una carpeta con los jar como es el caso del web app.

Una posible solución la encontré aquí por si a alguien tenga la misma duda: http://maven.40175.n5.nabble.com/quot-Un-mavenize-quot-a-Maven2-project-td116884.html

Última edición por mshelzr; 14/08/2013 a las 22:58
  #6 (permalink)  
Antiguo 15/08/2013, 12:11
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Maven a un proyecto normal

Hola,

Cita:
Iniciado por mshelzr Ver Mensaje
El plugin de maven para eclipse(mvn eclipse:eclipse) te permite hacer operaciones que lo hacías con comando pero recuerda que el caso que puse "El jefe no quiere saber nada de maven", se podría decir que quiere una carpeta con los jar como es el caso del web app. ...
Pues no estoy seguro a que te refieres, posiblemente si hubieras profundizado en la documentación hubieras visto que lo que hace el plugin eclipse:eclipse es crear un proyecto de 'naturaleza' Eclipse con todas sus dependencias 'externalizadas' a su ubicación en el repositorio local de maven.

Por lo que solamente hubieras necesitado decirle a eclipse que copie las dependencias a otro lugar todas juntas o usar el plugin assembly para copiarlas al construir por última vez tu proyecto. De allí en adelante podías borrar el proyecto maven porque ya estaría convertido en Eclipse con todas sus dependencias.

Bueno, normalmente solo es una idea, donde 'posiblemente sea de alguna ayuda', pero no es una solución de apachar un botón y listo (eso casi nunca sucede). Ahora bien técnicamente era mucho mas simple que el vínculo que mostraste.

Saludos,
  #7 (permalink)  
Antiguo 16/08/2013, 00:10
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Maven a un proyecto normal

Con maven si haces un install (creo que con package también) ya te crea automáticamente una carpeta lib con todas las librerías.

Aparte puedes configurar el pom con muchísimas opciones que te permiten hacer lo que necesites.

De todas formas es un poco absurdo pensar que tu jefe quiera usar las ventajas del maven pero sin usar maven, si no quiere maven, que se baje directamente las librerías y las añada al proyecto como se hacía antes.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 19/08/2013, 19:32
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Maven a un proyecto normal

Hola,

Cita:
Iniciado por Xerelo Ver Mensaje
Con maven si haces un install (creo que con package también) ya te crea automáticamente una carpeta lib con todas las librerías ...
Dependiendo del tipo de proyecto, es decir, depende del <packaging>, en el caso del packaging jar creo que sigue uniendo todos los jars en uno solo. Desempaquetando los jars y creando uno nuevo con todo adentro. Con el plugin assembly se puede hacer eso de copiar todos los jars a una sola carpeta.

Fue una de las primeras cosas que no me gustaron de maven al principio, que al usar el packaging 'jar' creaba un solo jar con todo adentro. La ventaja es que no necesitas un classpath para distribuir el proyecto porque todo está dentro del mismo jar.

Cita:
Iniciado por Xerelo Ver Mensaje
... De todas formas es un poco absurdo pensar que tu jefe quiera usar las ventajas del maven pero sin usar maven, si no quiere maven, que se baje directamente las librerías y las añada al proyecto como se hacía antes.
Creo que eso era lo que quería decir, o por lo menos eso entendí yo, no quiere usar maven pero ya tiene el proyecto en maven, así que solo quería una forma fácil de convertirlo en proyecto eclipse.

Y el plugin eclipse:eclipse sirve especialmente para eso, para convertir un proyecto maven en eclipse, siempre habrá que hacer un par de ajustes después pero por lo menos le crea el proyecto eclipse con todas las dependencias como las maneja internamente eclipse. Por lo que sería fácil eliminar el POM de maven después.

Casualmente yo necesitaba hacer ese procedimiento hace algún tiempo, adicionalmente había que modificar uno de los archivos de eclipse cambiando una línea para 'convertirlo' en 'naturaleza' Java. Pero lo hubiera buscado en mis archivos solo si hubiera visto que realmente necesitaba una forma fácil de hacerlo.

Saludos,

Última edición por HackmanC; 19/08/2013 a las 19:42 Razón: edit
  #9 (permalink)  
Antiguo 20/08/2013, 00:18
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Maven a un proyecto normal

Cita:
Dependiendo del tipo de proyecto, es decir, depende del <packaging>, en el caso del packaging jar creo que sigue uniendo todos los jars en uno solo.
Nunca he empaquetado todos los jar en uno sólo, ni con un proyecto jar.

http://stackoverflow.com/questions/9...nto-target-lib

Cita:
<project>
...
<profiles>
<profile>
<id>qa</id>
<build>
<plugins>
<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>
</plugins>
</build>
</profile>
</profiles>
</project>
Y el proyecto da igual que sea maven, si haces un import directamente desde eclipse, eclipse lo toma como un proyecto normal (habrá que cambiar cuatro cosas en la configuración). La única forma de que eclipse lo tome como un proyecto maven es tener el plugin m2e y hacer un import con el plugin.

El problema lo tienes con las librerías porque no forman parte del proyecto, así que la solución es añadir al subversion el directorio lib del target (o decirle que maven lo cree en otra ubicación).

Sea como sea, por ser un proyecto maven, o alguien te lo prepara para importarlo como un proyecto normal, o hay que añadir las librerías y modificar un poco la configuración de eclipse después de importarlo. Vamos, casi lo mismo que con un proyecto normal.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #10 (permalink)  
Antiguo 21/08/2013, 22:42
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Maven a un proyecto normal

Hola,

Cita:
Iniciado por Xerelo Ver Mensaje
Nunca he empaquetado todos los jar en uno sólo, ni con un proyecto jar.
Crea un proyecto maven con el package 'jar', agrega una clases, agrega un par de dependencias con scope runtime, después de aplicar mvn clean install revisa que hay dentro del 'jar' final.

Cita:
Iniciado por Xerelo Ver Mensaje
El problema lo tienes con las librerías porque no forman parte del proyecto, así que la solución es añadir al subversion el directorio lib del target (o decirle que maven lo cree en otra ubicación).

Sea como sea, por ser un proyecto maven, o alguien te lo prepara para importarlo como un proyecto normal, o hay que añadir las librerías y modificar un poco la configuración de eclipse después de importarlo. Vamos, casi lo mismo que con un proyecto normal.
Exactamente, pero para no prepararlo o añadir las librerías manualmente se usa el plugin eclipse:eclipse. Ese era el punto básicamente, las dependencias se copian dependiendo de ciertas características, usando el plugin assembly o con el plugin dependency.

http://stackoverflow.com/questions/9...rget-lib#98743

Después se agregan manualmente a un proyecto eclipse, o se usa el plugin eclipse:eclipse y se cambian un par de cosillas en el proyecto.

Saludos,

Etiquetas: maven, proyecto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:37.