web-dev-qa-db-fra.com

Comment exécuter Maven depuis un autre répertoire (sans cd dans le répertoire du projet)?

Supposons que mon projet maven se trouve dans /some/location/project et que mon emplacement actuel est /another/location/. Comment puis-je exécuter maven build sans passer à l'emplacement du projet cd /some/location/project?

201
Ali Shakiba

Vous pouvez utiliser le paramètre -f et spécifier le chemin d'accès à votre fichier pom, par exemple. mvn -f /path/to/pom.xml

Cela lance maven "comme si" il était dans /path/to pour le répertoire de travail.

344
dunni

Je ne pense pas que Maven supporte cela. Si vous êtes sur Unix et que vous ne voulez pas quitter votre répertoire actuel, vous pouvez utiliser un petit script Shell, une fonction Shell ou tout simplement un sous-shell:

user@Host ~/project$ (cd ~/some/location; mvn install)
[ ... mvn build ... ]
user@Host ~/project$

En tant que fonction bash (que vous pourriez ajouter à votre ~/.bashrc):

function mvn-there() {
  DIR="$1"
  shift
  (cd $DIR; mvn "$@")     
} 

user@Host ~/project$ mvn-there ~/some/location install)
[ ... mvn build ... ]
user@Host ~/project$

Je réalise que cela ne répond pas à la question précise, mais peut vous fournir ce que vous cherchez. Je ne suis pas familier avec le shell Windows, mais vous devriez également pouvoir y trouver une solution similaire.

Cordialement

11
Kyle Burton

Pour moi, ça marche comme ça: mvn -f /path/to/pom.xml [goals]