Come saltare i test quando si utilizza Maven reattore?
-
27-09-2019 - |
Domanda
Sto lavorando su un progetto multi-moduli Maven. Voglio costruire un dato modulo e saltare i test di unità per accelerare il processo di accumulo.
Ho provato quanto segue:
mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests
mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True
Tuttavia, questo non ha un effetto a tutti. Eventuali indizi?
Soluzione
La prima linea assomiglia l'idea giusta, ma invece di -Dgoals
si dovrebbe usare -Dmake.goals
.
Il reattore plug lanci un secondo copia di Maven per fare la sua magia. Questo copia di Maven non deve necessariamente tutte le bandiere e le opzioni che si passato alla vostra prima copia di Maven, compreso il flag --debug, sistema Proprietà e -DskipTests.
È possibile passare ulteriori argomenti a l'ha generato Maven trattandoli come obiettivi con -Dmake.goals, in questo modo:
mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests
In altre parole, gli "obiettivi" sono solo parametri extra-riga di comando passati alla Maven generato; non lo fanno devono necessariamente essere "obiettivi".
Se si desidera ottenere veramente fantasia te, può preferire di correre solo a secco reattore plug-in modalità -Dmake.printOnly, descritto sopra. Che stamperà fuori il comando che il plugin avrebbe utilizzato per costruire, ma è possibile modificare che riga di comando al contenuto del vostro cuore!
Altri suggerimenti
Data la struttura del progetto
/
A/pom.xml
B/pom.xml
C/pom.xml
D/pom.xml
E/pom.xml
pom.xml (parent pom file that includes A,B,C,D,E modules)
simile alla vostra
mvn reactor:make -Dmake.folders=C,D,E -Dgoals=package -Dmaven.test.skip=True
Anche se non sono sicuro se il mio approccio fa esattamente quello che il plugin reattore fa, ma ho trovato il seguente approccio ha funzionato abbastanza bene per me
mvn -pl=C,D,E -DskipTests=true package
Hai provato tra cui l'opzione di -Dmaven.test .skip = true (notare il caso) al vostro argomento della riga di comando è in esecuzione? Come Java, Maven è case sensitive. Ma in generale, è possibile eliminare l'= true parte e che dovrebbe anche causare i test da saltare.