De hecho, por diseño, Maven no resuelve las dependencias transitivas de una guerra declarada como dependencia de un proyecto. En realidad, hay un problema al respecto, MNG-1991 , pero no se resolverá en Maven 2.xy no estoy seguro de no saber si las superposiciones permiten solucionar este problema. Mi comprensión de la solución sugerida es duplicar las dependencias, por ejemplo, en un proyecto de tipo pom.
(EDITAR: Después de investigar un poco más, encontré algo interesante en este hilo que cito a continuación:
He estado ayudando con el desarrollo del proyecto AppFuse durante el último mes, donde hacemos un uso intensivo de la función de superposición de guerra en el complemento de guerra de Maven. ¡Es una característica realmente ingeniosa!
Para obtener el máximo poder con superposiciones de guerra, he desarrollado el complemento Warpath que permite que los proyectos utilicen artefactos de guerra como dependencias completas. En breve:
1) El contenido del directorio / WEB-INF / classes en los artefactos de dependencia de guerra se puede incluir en la ruta de clases del proyecto para tareas normales de compilación, etc.
2) Las dependencias transitivas de los artefactos de dependencia de guerra están disponibles para su uso por otros complementos, por ejemplo, compilación y oído, ¡así que ya no tendrá que incluir todas las dependencias al crear guerras delgadas!
El complemento ahora se ha utilizado activamente en el proyecto AppFuse durante los últimos meses, y creo que está en un punto en el que es utilizable y estable. ¿Estaría interesado el equipo del complemento de guerra en incluir la funcionalidad warpath dentro del complemento de guerra? Parece ser el lugar más natural para albergarlo.
Por lo tanto, no tengo ninguna experiencia con él, pero el complemento warpath de maven en realidad se ve agradable y simple y está disponible en el repositorio central. Para usarlo, incluya el siguiente elemento de configuración del complemento en su pom.xml
archivo:
[...]
<build>
<plugins>
<plugin>
<groupId>org.appfuse</groupId>
<artifactId>maven-warpath-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>add-classes</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
Y agregue las dependencias de guerra que desee incluir en el classpath como dependencias de tipo warpath :
[...]
<dependencies>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>warpath</type>
</dependency>
</dependencies>
[...]
Se necesitan los tipos de dependencia war y warpath: el tipo war lo usa el complemento war de Maven para realizar la superposición de guerra, el tipo warpath lo usa el complemento Warpath para determinar la lista correcta de artefactos para su inclusión en la ruta de clases del proyecto.
Lo intentaría.)