--Les arguments de ligne de commande pour les applications Java exécutées avec gradle run peuvent être spécifiés avec --args (disponible depuis la migration Gradle 4.9) --Par exemple, en spécifiant gradle run --args = "aaa bbb ccc", vous pouvez définir le paramètre du tableau de chaînes dans la méthode principale de la classe principale Java.
Un exemple de spécification de trois arguments pour aaa bbb ccc.
$ gradle run --args="aaa bbb ccc"
Since Gradle 4.9, the command line arguments can be passed with --args. For example, if you want to launch the application with command line arguments foo --bar, you can use gradle run --args="foo --bar" (see JavaExec.setArgsString(java.lang.String).
Confirmé pour fonctionner avec OpenJDK 11.0.2 et Gradle 5.6.2.
Préparez build.gradle et App.java pour l'exécution.
$ tree
.
├── build.gradle
└── src
└── main
└── java
└── com
└── example
└── App.java
fichier build.gradle.
build.gradle
plugins {
id 'java'
id 'application'
}
repositories {
mavenCentral()
jcenter()
}
application {
mainClassName = 'com.example.App'
}
Fichier App.java.
package com.example;
public class App {
public static void main(String[] args) {
System.out.println("args.length=" + args.length);
for(String arg: args) {
System.out.println(arg);
}
}
}
Exécutez gradle run sans arguments.
$ gradle run
> Task :run
args.length=0
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
Exécutez gradle run avec des arguments.
$ gradle run --args="aaa bbb ccc"
> Task :run
args.length=3
aaa
bbb
ccc
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date
Ajoutez le processus lorsque la tâche d'exécution est exécutée dans build.gradle.
build.gradle
run {
//Passez la propriété args aux args de la tâche d'exécution si elle existe
if (project.hasProperty('args')) {
//Divisez et passez avec des caractères vierges demi-largeur
args(project.args.split('\\s+'))
}
}
Si vous spécifiez la propriété args lors de l'exécution de gradle run, elle est transmise en tant qu'argument à l'application Java.
$ gradle run -Pargs="aaa bbb ccc"
> Task :run
args.length=3
aaa
bbb
ccc
BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date