Per ottenere il classpath completo per un progetto Java che utilizzi Maven, è possibile utilizzare il goal build-classpath
del plugin maven-dependency-plugin.
Appunti per operare programmaticamente su un progetto Maven, sfruttando le classi contenute in Spring Roo.
Come aggiungere un artifact ad un'installazione di Archiva.
Questo tutorial spiega come far comunicare due applicazioni attraverso il modulo Http Remoting di Spring.
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.
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.
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
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 [...]
assembly opportunamente configurato.
Basterà poi semplicemente lanciare
mvn assembly:assembly
$artifactId-full-dependencies.jar <!-- mvn assembly:assembly --> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration>