Pouvons-nous démarrer la construction maven à partir du point où elle a échoué

89

Supposons que je fasse une compilation complète sur mon grand projet qui a 7 modules et sur le 6ème module, la construction a échoué car un test a échoué. Existe-t-il un moyen de démarrer la construction à partir du point où elle a échoué?

Shekhar
la source

Réponses:

134

Vous pouvez reprendre la construction à partir du 6ème module en utilisant -rfou --resume-from:

-rf, --resume-from
          Reprendre le réacteur du projet spécifié

Voir les options avancées du réacteur pour plus de détails.

Pascal Thivent
la source
Merci pour ça, je vais essayer
Shekhar
1
c'est bien, pour les sous-sous-projets, utilisez simplement subproject/subsubprojectcomme paramètre
akostadinov
13
Exemple:maven -rf <module name> clean install
Zoltán
9
Cela n'a fonctionné pour moi que lorsque j'ai ajouté le nom du module avec deux points, par exemple mvn -rf :moduleName install. (Je ne sais pas exactement pourquoi le colon est nécessaire, mais il semble que ce soit le cas - du moins pour ma configuration.)
Steve Chambers
3
Il semble que cela ne fonctionne que si votre construction initiale avait un installobjectif, car la construction qui reprend peut alors récupérer les artefacts qui ont déjà été construits à partir de votre référentiel Maven local pour résoudre les dépendances sur eux. Je trouve que c'est une mauvaise pratique d'exécuter des installbuilds car vous finissez par encombrer votre référentiel local avec des instantanés et vous pouvez finir par dépendre d'un instantané plus ancien que ce à quoi vous vous attendez. On dirait que pour les builds où vous ne le packagefaites et que vous ne le faites pas install, utiliser -rfn'est pas une option: vous devrez faire toute la construction.
Frans
13

Voici l'exemple

mvn clean install -rf :your-module
M Sach
la source
9

vous pouvez reprendre la construction à partir de n'importe quel module de votre choix en utilisant la -rfcommande. Par exemple, si votre build a échoué dans myproject-proxy, vous pouvez utiliser la commande suivante:

mvn -rf myproject-proxy clean install
user3401235
la source
J'avais besoin de mettre un deux-points pour que cela fonctionne, par exemple -rf: yourModule Voir les autres réponses.
Gapmeister66
8

regardez le résumé de maven et vous verrez les modules exécutés et où maven est arrêté. alors essayez ceci:

mvn clean install-Dmaven.test.skip=true -rf :yourModule
Antonio Martin
la source
-1

Syntaxe: mvn -rf nom de module mavengoal ou mvn --resume-from nom de module mavengoal

Ex: mvn -rf admin-module clean install ou mvn --resume-from admin-module clean install

scott_dennis
la source
-rfn'est pas court pour --remove-from. C'est l'abréviation de--resume-from
Gili
-2

Vous pouvez exécuter la construction du module 6 séparément pour voir si elle échoue toujours, mais j'ai peur que vous ayez besoin de construire tous les modules depuis le début lorsque vous voulez exécuter la «grande» construction.

Edit: Bien sûr, les versions suivantes seront plus rapides car le code des modules 1 à 5 est déjà compilé, sauf si vous exécutez clean dans le cadre de votre construction.

poisson
la source
Oui .. Je sais cela .. Mais je cherchais un moyen de démarrer la construction à partir du point où elle a échoué ..
Shekhar