Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Noviembre 21, 2008, 01:45:22
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Foro de Java, C++ y más.

Empieza una nueva comunidad de programación: Oneble ... es lo que tu quieras que sea

+  Foros Java y C/Linux
|-+  Herramientas y librerías
| |-+  Maven y Ant
| | |-+  Inclur JAR en WEB-INF/lib
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Inclur JAR en WEB-INF/lib  (Leído 896 veces)
guevonaso
Newbie
*
Mensajes: 3


Ver Perfil


« en: Marzo 27, 2008, 12:53:47 »

Buenas, estoy creando un proyecto maven 2 nuevo yhe llegado a un punto en que tengo un problema con una libreria que no está en los repositorios maven.
Por facilitar la distribucion del proyecto y no tener que hacer "maven instal:file.. bla bla bla" de un jar  concreto para poder compilarlo, al ser una aplicación web habia pensado distribuir el JAR con la cartpeta, poniendolo en "WEB-INF/lib" o en otro sitio.

Pero no encuentro la manera de decirle a maven que coja las dependencias de la carpeta "WEB-INF/lib".
¿Alguna idea de como hacerlo? gracias.
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1949



Ver Perfil WWW Email
« Respuesta #1 en: Marzo 27, 2008, 02:56:23 »

Hola:

Aquí tienes la configuración para indicar que jars debe incluir en el web-inf/lib.
Quizás tengas que hacer tu propio mvn install:file en el sitio donde desarrolles para que luego al generar el war lo encuentre, pero supongo que una vez metido en el war, ya es cuestión de distribuirlo sin más.

Se bueno.
En línea

guevonaso
Newbie
*
Mensajes: 3


Ver Perfil
« Respuesta #2 en: Marzo 27, 2008, 04:32:49 »

Nastardes, muchas gracias por la velocidad al contestar.
Por lo que he podido ver eso lo que indica es la manera de añadir el jar en el web-inf/lib, aunque yo lo que quiero es algo como decir :
<dependency>
 ... <localizacion-del-fichero-en-ruta-local>webapp/Web-inf/lib

pero parece que no hay manera, el problema no es tener el war correctamente, si no más bien el hecho de tener el proyecto listo para compilar sin tener que hacer "install:file" previamente.

En este mensaje  http://foro.chuidiang.com/index.php?topic=715.0 hace referencia a tener algunos JAR en el lib (y que luego se duplican) y pensaba que era para lo que yo quiero hacer.
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1949



Ver Perfil WWW Email
« Respuesta #3 en: Marzo 27, 2008, 06:38:54 »

Hola:

Para el compilado en el sitio que desarrollas puedes hacer el mvn install:file y solo lo haces una vez. Luego, con el dependency en el pom, debería cogerlo correctamente y situarlo en el web-inf/lib del despliegue.

¿No quieres hacer el mvn install:file en tu pc de desarrollo ni siquiera una vez?

Si es por varios usuarios compartiendo proyecto con CVS o similar, lo normal sería tener un repositorio de jars compartido en un servidor común, de forma que si una sola persona hace un mvn deploy:file de dicho jar, lo mete en el repositorio compartido y así está disponible para cualquier desarrollador. Por ejemplo, yo tengo una librería gráfica que he subido en formato de repositorio maven en http://maven2.chuidiang.com. Si en tu pom.xml pones esta dependencia/repositorio, debería funcionar correctamente para cualquier desarrollador, a pesar de que el jar de graficos no es estándar ni está en un sitio estándar.

Se bueno.

Se bueno.
En línea

guevonaso
Newbie
*
Mensajes: 3


Ver Perfil
« Respuesta #4 en: Marzo 27, 2008, 07:11:30 »

Comprendo el proceso, el problema es la disponibilidad de un repositorio web donde instalar el jar. Mi caso actualmente es ese, tengo un jar que no puedo publicar en ningun servidor web (no quiero entrar en detalles, simplemente no se puede) y que debe de pasarse a otro equipo de desarrolladores.
Este otro equipo, sin instrucciones más allá de conocer de maven los comandos básicos (compile, clean, package), deberia de poder compilar el proyecto completo y trabajar con él.

Obviamente si el jar no está publicado habrá un error y será necesario hacer el install:file. ¿no hay una manera de hacer este proceso de forma automatica en el pom.xml?

Como tu mismo comentas, se puede definir un repositorio "no estándar" como este :

<repositories>
      <repository>
         <id>com.chuidiang</id>
         <name>com.chuidiang</name>
         <layout>default</layout>
         <url>http://maven2.chuidiang.com</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
      ...
  </repositories>


y la cosa es que las dependencias se miran en todos los repositorios y se instalan en local. He visto en la página de maven que las rutas locales no están permitidas, pero ¿no hay otra manera de referenciar un jar dentro del proyecto? o al menos referenciarlo a una ruta de SVN ?
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1949



Ver Perfil WWW Email
« Respuesta #5 en: Marzo 27, 2008, 09:48:11 »

Hola:

No he probado pero se me ocurre que puedes intentar poner en <url> del <repository> cosas como file://... en vez de http://... a ver si de esta forma lo coge de local.

También en su momento hice un repositorio a través de ftp autentificado para subir los ficheros y de donde se bajaban al compilar. Quizás en donde esté tu servidor de svn puedas montar un repositorio de jars estilo maven a través de ftp...

Se bueno.
En línea

Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!