Comment passer plusieurs parameters en ligne de commande lors de l’exécution de la tâche Gradle?

J’ai des classes java et groovy qui sont exécutées par tâche. J’ai réussi à le faire fonctionner mais je n’aime pas la façon dont je dois passer les parameters en ligne de commande. Voici comment je le fais actuellement via la ligne de commande: gradle runTask -Pmode"['doStuff','username','password']"
mon code build.gradle qui prend ces parameters ressemble à ceci:

 if (project.hasProperty("mode")) { args Eval.me(mode)} 

puis j’utilise mes arguments / parameters dans mon code java comme suit:

 Ssortingng action = args[0]; //"doStuff" Ssortingng name = args[1]; .. //"username" 

Je me demandais s’il y avait un moyen de passer les parameters d’une meilleure façon, comme par exemple:

 gradle runTask -Pmode=doStuff -Puser=username -Ppass=password 

et comment les utiliser dans mes cours de java.

JavaExec peut être la voie à suivre. Il suffit de déclarer une tâche et de transmettre les parameters du projet à l’application Java:

 task myExecTask(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'com.project.MyApplicationMainClass' args project.getProperty('userName') + ' ' + project.getProperty('password'); } 

Pour l’exécuter, écrivez simplement gradle myExecTask -PuserName=john -Ppassword=secret