java

Maven: settings file

Di default Maven cerca i file di settings in due path:

${user.home}/.m2/settings.xml per configurazioni specifiche dell'utente
${user.home}${M2_HOME}/conf/settings.xml per configurazioni a livello di sistema

Per usare uno specifico file di settings è possibile passare a Maven il nuovo file cui puntare attraverso il parametro org.apache.maven.user-settings

mvn install -Dorg.apache.maven.user-settings=/path/to/new/maven/settings.xml

Maven: dipendenze del progetto

mvn dependency:analyze

Riassume le dipendenze dando WARNING per dipendenze dichiarate ma non usate e per dipendenze non dichiarate ma usate (utile nei casi di progetti multimodulo).

mvn dependency:tree

Crea un grafico (testuale) delle dipendenze di un progetto; l'output sarà qualcosa del genere:

[...]
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - something:our-project:jar:0.2.0-SNAPSHOT
[INFO]    task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree]
[INFO] something:our-project:jar:0.2.0-SNAPSHOT
[INFO] +- eu.ucg.geb:gs-xml-sep:jar:3.05:compile
[INFO] +- org.apache.xmlbeans:xmlbeans:jar:2.4.0:compile
[INFO] |  \- stax:stax-api:jar:1.0.1:compile
[INFO] +- org.testng:testng:jar:jdk15:5.8:compile
[INFO] |  \- junit:junit:jar:4.4:compile (version managed from 3.8.1)
[INFO] \- eu.ucg.geb:gc-ent-prj:jar:0.2.0-SNAPSHOT:compile
[INFO]    +- org.hibernate:ejb3-persistence:jar:3.3.2.Beta1:compile
[INFO]    +- org.hibernate:hibernate-entitymanager:jar:3.3.2.GA:compile
[INFO]    |  +- org.hibernate:hibernate:jar:3.2.6.ga:compile
[INFO]    |  |  +- net.sf.ehcache:ehcache:jar:1.5.0:compile (version managed from 1.2.3)
[INFO]    |  |  |  +- backport-util-concurrent:backport-util-concurrent:jar:3.1:compile
[INFO]    |  |  |  \- net.sf.jsr107cache:jsr107cache:jar:1.0:compile
[INFO]    |  |  +- javax.transaction:jta:jar:1.0.1B:compile
[INFO]    |  |  +- asm:asm-attrs:jar:1.5.3:compile
[INFO]    |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO]    |  |  +- antlr:antlr:jar:2.7.6:compile
[INFO]    |  |  +- cglib:cglib:jar:2.1_3:compile
[INFO]    |  |  +- asm:asm:jar:1.5.3:compile
[INFO]    |  |  \- commons-collections:commons-collections:jar:3.2.1:compile
[INFO]    |  +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile (version managed from 3.3.1.GA)
[INFO]    |  |  \- org.hibernate:hibernate-core:jar:3.3.0.SP1:compile
[INFO]    |  +- org.hibernate:hibernate-commons-annotations:jar:3.3.0.ga:compile
 
[INFO]    |  |  \- javax.persistence:persistence-api:jar:1.0:compile
[INFO]    |  \- javassist:javassist:jar:3.4.GA:compile
[INFO]    +- commons-lang:commons-lang:jar:2.4:compile
[...]

 

Jar con tutte le dipendenze da progetto Maven

Per creare un file jar che contenga tutte le dipendenze in modo da poterlo facilmente distribuire, basta aggiungere nel pom.xml il plugin assembly opportunamente configurato. Basterà poi semplicemente lanciare
mvn assembly:assembly
per ottenere in target/ il nostro jar $artifactId-full-dependencies.jar
<!-- mvn assembly:assembly -->
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
  <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
  </descriptorRefs>
</configuration>
Condividi contenuti