Author Topic: Duplicación de librerias en el war generado por Maven  (Read 5782 times)

MariaB

  • Guest
Duplicación de librerias en el war generado por Maven
« on: Noviembre 14, 2007, 03:30:20 pm »
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.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5468
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Duplicación de librerias en el war generado por Maven
« Reply #1 on: Noviembre 14, 2007, 08:20:02 pm »
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.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5468
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Duplicación de librerias en el war generado por Maven
« Reply #2 on: Noviembre 15, 2007, 01:17:18 pm »
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.

MariaB

  • Guest
Re: Duplicación de librerias en el war generado por Maven
« Reply #3 on: Noviembre 15, 2007, 03:42:09 pm »
¡Muchísimas gracias! voy a ponerme a trastear con ello y ya te contaré.

MariaB

  • Guest
Re: Duplicación de librerias en el war generado por Maven
« Reply #4 on: Noviembre 19, 2007, 06:35:33 pm »
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

 

ey