Maven & Zsh : de la complétion

Après avoir tapé pour la 42 millième fois -Dmaven.test.skip=true après ma commande mvn, j’en ai eu raz le bol.

J’ai donc regardé rapidement la doc de zsh pour mettre un minimum de complétion sur cette commande. Voilà le résultat : il faut ajouter un fichier nommé _mvn, exécutable, dans /usr/local/zsh/4.3.4/functions

Fichier :

#compdef mvn 

_wanted maven expl 'maven2' compadd \
pre-clean clean post-clean validate generate-sources \
process-sources generate-resources process-resources \
compile process-classes generate-test-sources process-test-sources \
generate-test-resources process-test-resources test-compile \
process-test-classes test prepare-package package pre-integration-test \
integration-test post-integration-test verify install deploy  \
pre-site site post-site site-deploy \
-Dmaven.test.skip=true \
-DskipTests \
-e \
eclipse:eclipse eclipse:clean  \
dependency:list dependency:tree dependency:analyze \
archetype:generate \
cobertura:cobertura cobertura:clean \
checkstyle:checkstyle \
release:prepare release:perform

return 0

Après cela, il suffit de relancer le shell, et, miracle, quand on appuie sur après avoir tapé mvn, on a une liste de propositions !!!

Vous pouvez bien sur enrichir la liste de propositions. Si la liste n’est pas assez complète, on pourrais écrire un petit plugin Maven qui parcours le repo locale, et génère un fichier de complétion pour zsh. Si vous êtes interessés, dites le moi.

Testé avec zsh 4.3.4, sous cygwin

5 commentaires sur “Maven & Zsh : de la complétion”

  • 'Après avoir tapé pour la 42 milliéme fois -Dmaven.test.skip=true'
    r???.... p? bien ça
    ;-)

  • Au moins ça veut dire qu'il y a des tests (même si ils ne sont pas optimisés) :-)

  • > Après avoir tapé pour la 42 milliéme fois -Dmaven.test.skip=true

    Pareil, jusqu'à ce que je découvre -DskipTests, qui est beaucoup plus facile à taper !
    maven.apache.org/plugins/...

    Merci quand même pour le tuyau...

  • Il faut noter la différence entre les deux :
    - skipTests supprime l'execution des TU.
    - maven.test.skip supprime l'execution des TU ainsi que leur compilation.

  • Essayez celui-là: https://github.com/zsh-users/zsh-completions/blob/master/_mvn
    1. Laisser un commentaire

      Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


      Ce formulaire est protégé par Google Recaptcha