Infatti, in base alla progettazione, Maven non risolve le dipendenze transitive di una guerra dichiarata come la dipendenza di un progetto. In realtà c'è un problema a riguardo, MNG-1991, ma non sarà risolto in Maven 2.xe
Non sono sicuro che
non so se gli overlay consentono di risolvere questo problema. La mia comprensione della soluzione suggerita è quella di duplicare le dipendenze, ad esempio in un progetto di tipo pom.
(EDIT: Dopo un po 'di più di scavo, ho trovato qualcosa di interessante in this thread che sto citando qui di seguito:
ho aiutato con lo sviluppo del progetto AppFuse nel corso dell'ultimo mese in cui facciamo uso pesante della funzione di sovrapposizione guerra nel Maven plug guerra. si tratta di una caratteristica davvero ingegnoso!
per ottenere potenza massima con sovrapposizioni di guerra ho sviluppato il plugin Warpath che consente ai progetti di utilizzare artefatti di guerra come dipendenze a pieno titolo. In breve:
1) Il contenuto della directory/WEB-INF/classes in dipendenza guerra manufatti possono essere inclusi nel classpath del progetto per la compilazione normale, ecc compiti.
2) Le dipendenze transitive dagli artefatti di dipendenza dalla guerra diventano disponibili per l'uso da altri plug-in, ad es. compile e ear - quindi non più dovendo includere tutte le dipendenze quando si creano guerre magre!
Il plug-in ora è stato utilizzato attivamente nel progetto AppFuse per gli ultimi mesi e ritengo che sia in un punto in cui è utilizzabile entrambi e stabile. Il team del plugin di guerra sarebbe interessato a includere la funzionalità del warpath all'interno del plugin war? Sembrerebbe essere il posto più naturale per ospitarlo.
Quindi, non ho alcuna esperienza con esso, ma il maven warpath plugin sembra davvero bello e semplice ed è disponibile nel repository centrale. Per usarlo, includere il seguente elemento di configurazione del plugin nel file pom.xml
:
[...]
<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>
[...]
e aggiungere le dipendenze di guerra che si desidera includere nel classpath come sentiero di guerra Tipo dipendenze:
[...]
<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>
[...]
Sia la guerra e sono necessari tipi di dipendenza da warpath: il war type è usato dal plugin di guerra Maven per fare l'overlay di guerra, il tipo warpath è usato dal plugin Warpath per determinare l'elenco corretto di risorse da includere nel classpath del progetto.
darei un tentativo.)
Ho votato questo giù prima ho provato. Non so se questo è perché sto usando Maven3, ma in realtà entrambe le mie cartelle/class e/lib sono transitate in modo transnazionale attraverso più dipendenze di WAR. Ancora una volta - mi dispiace per averlo votato. Apparentemente, questa è la risposta "corretta". – HDave