Author Topic: Inclur JAR en WEB-INF/lib  (Read 9674 times)

guevonaso

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Inclur JAR en WEB-INF/lib
« on: Marzo 27, 2008, 05:53:47 pm »
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.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5468
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Inclur JAR en WEB-INF/lib
« Reply #1 on: Marzo 27, 2008, 07:56:23 pm »
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.

guevonaso

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Re: Inclur JAR en WEB-INF/lib
« Reply #2 on: Marzo 27, 2008, 09:32:49 pm »
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.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5468
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Inclur JAR en WEB-INF/lib
« Reply #3 on: Marzo 27, 2008, 11:38:54 pm »
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.

guevonaso

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
Re: Inclur JAR en WEB-INF/lib
« Reply #4 on: Marzo 28, 2008, 12:11:30 am »
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 ?

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5468
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Inclur JAR en WEB-INF/lib
« Reply #5 on: Marzo 28, 2008, 02:48:11 am »
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.

 

ey