J'ai le problème suivant. Je voudrais exécuter mvn
à partir de la ligne de commande pour un Main.Java
fichier. Main.Java
accepte un paramètre. Comment puis-je le faire en ligne de commande?
J'ai essayé de trouver un exemple mais je n'ai pas réussi. Est-ce que quelqu'un pourrait m'aider en me donnant un exemple?
J'ai regardé ici mais n'ai pas bien compris ce que je devais faire.
En outre , comment puis-je exécuter cette commande à partir d'un dossier différent du dossier Main.Java?
par exemple le Main.Java
est situé dans my/Java/program/Main.Java
. Que devrais-je mettre dans
mvn exec:Java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"
Vous pouvez exécuter: mvn exec:exec -Dexec.args="arg1"
.
Cela passera l'argument arg1 à votre programme.
Vous devez spécifier la classe principale pleinement qualifiée, par exemple, un fichier Main.Java faisant partie d'un test de package doit
mvn exec:Java -Dexec.mainClass=test.Main
En utilisant le -f
paramètre, comme décrit ici , vous pouvez également l'exécuter à partir d'autres répertoires.
mvn exec:Java -Dexec.mainClass=test.Main -f folder/pom.xm
Pour plusieurs arguments, séparez-les simplement par un espace comme vous le feriez sur la ligne de commande.
mvn exec:Java -Dexec.mainClass=test.Main -Dexec.args="arg1 arg2 arg3"
Pour les arguments séparés par un space, vous pouvez grouper en utilisant 'argument separated with space'
entre les guillemets.
mvn exec:Java -Dexec.mainClass=test.Main -Dexec.args="'argument separated with space' 'another one'"
En plus de l'exécuter avec mvn exec:Java
, vous pouvez aussi le lancer avec mvn exec:exec
mvn exec:exec -Dexec.executable="Java" -Dexec.args="-classpath %classpath your.package.MainClass"
Ajouter un script Shell, par exemple run.sh
rend beaucoup plus facile:
#!/usr/bin/env bash
export Java_PROGRAM_ARGS=`echo "$@"`
mvn exec:Java -Dexec.mainClass="test.Main" -Dexec.args="$Java_PROGRAM_ARGS"
Ensuite, vous pouvez exécuter:
./run.sh arg1 arg2 arg3
Jetez un coup d'oeil au maven-exec-plugin . Utilisé correctement, vous pouvez le faire compiler votre classe Java puis simplement exécuter Java avec la classe compilée sur le chemin de classe. Pour lancer, il vous suffit de faire c'est utiliser
mvn exec:exec