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

Nuevo foro de Control de versiones.

+  Foros Java y C/Linux
|-+  Herramientas y librerías
| |-+  Maven y Ant
| | |-+  Duplicación de librerias en el war generado por Maven
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Duplicación de librerias en el war generado por Maven  (Leído 724 veces)
MariaB
Newbie
*
Mensajes: 4


Ver Perfil


« en: Noviembre 14, 2007, 09:30:20 »

Hola

Estoy intentando automatizar el despliegue de aplicaciones J2EE usando Maven 2 a través de Continuum.

Necesito que al generar el war sólo se incluyan las librerias que indico en la sección de dependencias del pom, tomándolas del repositorio local de Maven, sin embargo en este momento se incluyen esas y las que hay en el directorio del proyecto web/WEB-INF/lib, con lo que el war generado tiene librerías duplicadas.

He probado lo siguiente, pero no consigo nada, en el war generado siguen apareciendo las librerias del repositorio de maven y del directorio web/WEB-INF/lib:

1.-

<build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <groupId>org.apache.maven.plugins</groupId>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                    <resource>
                        <directory>web/WEB-INF/lib</directory>
                        <excludes>
                            <exclude>**.jar</exclude>
                        </excludes>
                    </resource>
                </configuration>
            </plugin>
        </plugins>
</build>

2.-

<build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <groupId>org.apache.maven.plugins</groupId>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                    <resource>
                        <directory>web/WEB-INF/lib</directory>
                        <excludes>
                            <exclude>**.jar</exclude>
                        </excludes>
                    </resource>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src</directory>
            </resource>
            <resource>
                <directory>web/WEB-INF/lib</directory>
                <excludes>
                    <exclude>**.jar</exclude>
                </excludes>
            </resource>
        </resources>
</build>

3.-

<build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                    <warSourceExcludes>web/WEB-INF/lib/*.jar</warSourceExcludes>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src</directory>
            </resource>
        </resources>
</build>

Si alguien me puede echar una mano se lo agradecería.

Aprovecho para felicitaros por este nuevo foro.

Un saludo y gracias.
En línea
chuidiang
Administrator
Hero Member
*****
Mensajes: 1949



Ver Perfil WWW Email
« Respuesta #1 en: Noviembre 14, 2007, 02:20:02 »

Hola:

En las mismas <dependency> del pom.xml puedes decidir si quieres que vaya o no en el war, en el classpath, etc. Echa un ojo al ejemplo final de esta página

http://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html

Se bueno.
En línea

chuidiang
Administrator
Hero Member
*****
Mensajes: 1949



Ver Perfil WWW Email
« Respuesta #2 en: Noviembre 15, 2007, 07:17:18 »

Hola:

Otra opción, fíjate en la parte de addClassPath false en este ejemplo de añadir dependencias a una aplicación web con maven.

Se buena.
En línea

MariaB
Newbie
*
Mensajes: 4


Ver Perfil
« Respuesta #3 en: Noviembre 15, 2007, 09:42:09 »

¡Muchísimas gracias! voy a ponerme a trastear con ello y ya te contaré.
En línea
MariaB
Newbie
*
Mensajes: 4


Ver Perfil
« Respuesta #4 en: Noviembre 19, 2007, 12:35:33 »

Hola otra vez

Por fin he conseguido que funcione, y como lo prometido es deuda, te cuento como, quizá a alguien le sirva de ayuda.
El error lo tenía al indicar el directorio donde están los jar que quería excluir. Hay que dar la ubicación relativa al directorio web, y no al directorio donde está el pom.

<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
     <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <groupId>org.apache.maven.plugins</groupId>
          <configuration>
               <warSourceDirectory>web</warSourceDirectory>
               <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
          </configuration>
       </plugin>
</plugins>
</build>

Con esto los .jar que hay en web/WEB-INF/lib no se incluyen en el war generado.

Muchas gracias por tu ayuda chuidiang.
Hasta pronto
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!