maven

Ottenere classpath per un progetto Maven

Per ottenere il classpath completo per un progetto Java che utilizzi Maven, è possibile utilizzare il goal build-classpath
del plugin maven-dependency-plugin.

Operare su progetti Maven usando Spring Roo

Appunti per operare programmaticamente su un progetto Maven, sfruttando le classi contenute in Spring Roo.

Deploy di un artifact ad un repository Archiva

Come aggiungere un artifact ad un'installazione di Archiva.

Integration test

Appunti per la creazione di integration test usando Selenium, HtmlUnit, Maven e Cargo.

Spring HTTP remoting

Questo tutorial spiega come far comunicare due applicazioni attraverso il modulo Http Remoting di Spring.

Utilizzare Jetty sulla porta 80 (senza diritti di root)

Questo tutorial spiega come eseguire Jetty sulla porta 80, senza che debba operare con privilegi di root.
Il codice di esempio è inteso per un primo test delle potenzialità di Jetty, e certo non può definirsi "production ready": utilizza una distribuzione pulita di Jetty, non prevede alcuna verifica di sicurezza e utilizza script bash eseguiti come cgi.

Report del database di un progetto Maven

Per documentare la struttura del database utilizzato in un progetto Maven si utilizza il reporting plugin per Schemaspy.

SchemaSpy is a Java-based tool (requires Java 5 or higher) that analyzes the metadata of a schema in a database and generates a visual representation of it [...]

Tutto quello che dovrebbe servire è reperibile a questo indirizzo:
maven.wakaleo.com
Il plugin per SchemaSpy è ospitato nella repository Wakaleo.

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