Ciao,
2013/6/8 Stefano Tranquillini <
stefano.tr...@gmail.com>:
> il war centra poco con il problema.
> Io ho da creare un jar con le varie dipendenze, se vogliamo fare un esempio
> minimo pensate ad avere una classe che usa log4j. se non esporto la
> dipendenza di log4j la mia classe non va.
> pensavo che maven esportasse i jar in automatico, ma cosi' non e'.
> provo l'uber jar dopo.
Guarda, sei veramente fuori strada, oppure non ti sei spiegato bene.
Progetto JAR, pom.xml
<project...>
<groupId>it.tranquillini</groupId>
<artifactId>stefano-jar</artifactId>
<version>1.2.3</version>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
Questo pom.xml dichiara che il tuo jar dipende da Log4J.
Progetto WAR, pom.xml
<project...>
<groupId>it.tranquillini</groupId>
<artifactId>stefano-war</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>it.tranquillini</groupId>
<artifactId>stefano-jar</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
Questo pom.xml dichiara che il tuo war dipende da "stefano-jar".
Quando fai il build del war, Maven vede la dipendenza con
"stefano-jar" e la mette in WEB-INF/lib. Poi Maven vede che
"stefano-jar" dipende da Log4J e transitivamente importa la dipendenza
e la mette anch'essa in WEB-INF/lib.
Ogni volta che hai un artifact che dipende da "stefano-jar", Maven
importa transitivamente anche Log4J.
Così funziona di sicuro da command line, che ti raccomando.
Eclipse IDE non è neanche decente per scrivere una nota da una riga,
figuriamoci l'integrazione con Maven.
Magari tutti i tuoi problemi sono dovuti ad Eclipse che non funziona
piuttosto che da Maven.
Raccomando di *non* provare l'uberjar finché non hai capito cosa c'è
che non va nel tuo progetto. L'uberjar *non* è la soluzione giusta nel
99.9% dei casi.
Se posti i tuoi pom.xml sarebbe meglio.
--
Simone Bordet
http://bordet.blogspot.com
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz