2013-01-24 11 views
9

Io uso Maven 3.0.4 e voglio avere junit 4 di default.crea POM con junit 4

I miei progetti sono creati con il comando:
$> mvn archetipo: creare -DgroupId = my.group.id -DartifactId = myArtifactId -DpackageName = my.package.name

Questo mette un depency a junit versione 3.8.1 nel pom.xml creato, nonostante il fatto che verion 4.8.1 sia già presente.
Non ci sono dipendenze da junit nel mio settings.xml globale, e non ho un file .m2/repository/settings.xml locale. Non voglio rimuovere la vecchia versione 3.8.1, ma voglio che tutti i nuovi progetti vengano creati con la versione 4.8.1

Posso farlo nel mio settings.xml (globale o locale non importa)? E se sì, qual è la sintassi corretta?

risposta

4

Un paio di cose:

archetype:create è deprecato da archetype:generate; si prega di utilizzare generate, è intercambiabile con create nell'esempio.

Per quanto riguarda una soluzione, direi che la cosa più semplice da fare è generare il progetto, modificare il pom per avere la versione corretta junit; e poi dall'interno del progetto gestito:

mvn archetype:create-from-project 

Che creerà un archetipo, sulla base di modifiche, è sufficiente installare questo con:

cd target/generated-sources/archetype/ 
mvn install 

Ora è possibile creare nuovi progetti Maven con questo nuovo archetipo come ti piace con:

mvn archetype:generate -DgroupId=my.group.id -DartifactId=newArtifact -DpackageName=my.package.name -DarchetypeArtifactId=myArtifactId-archetype -DarchetypeGroupId=my.group.id 

Speriamo che questo aiuti.

+0

Grazie. Aggiungi una prima occhiata piuttosto complessa, ma avrà delle ragioni. – kdg1955

+0

@Come importa come importare/utilizzare l'archetipo appena creato in eclissi? – Rembo

+0

Prima basta dire a eclissi dove si trova il tuo file di catalogo locale. In eclissi: Window => Preferenza => Maven => Archetypes => 'Aggiungi catalogo locale'. Il valore predefinito è $ HOME/.m2/archetype-catalog.xml. Applica e dovrebbe essere visibile quando crei un nuovo progetto/modulo maven. Attenzione alle versioni di istantanee; forse devi controllare "include archetype snapshot". – kdg1955