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 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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