2015-02-11 12 views
7

https://stackoverflow.com/a/23689696/1757491Pass Kommandozeilenparameter in Lauf Aufgabe

begann ich ein paar Informationen von der vorgeschlagenen Lösung aus der obigen Antwort mit: Application Plugin Ansatz

(build.gradle)

apply plugin: 'application' 

mainClassName = "com.mycompany.MyMain" 
run { 
    /* Need to split the space-delimited value in the exec.args */ 
    args System.getProperty("exec.args").split()  
} 

Befehl Linie:

gradle run -Dexec.args="arg1 arg2 arg3" 

es wor ks toll für seinen beabsichtigten Zweck, scheint aber eine Nebenwirkung zu haben. Es macht Sinn, in den Kommandozeilen-Argumente für Lauf passieren, aber ich habe sie zum Beispiel für jede Aufgabe passieren in:

gradle tasks -Dexec.args="arg1 arg2 arg3" 

Wenn ich die

-Dexec.args="arg1 arg2 arg3" 

I

"build failed with an exception" 
Where:path\build.gradle line:18 which if where my run{ } is. 
bekommen auslassen

Antwort

5

Sie können es eine zwei verschiedene Arten lösen:

Erste:

exec.args Eigenschaft kann direkt in der Hauptklasse gelesen werden - so ist es nicht notwendig, args in run Schließung überhaupt zu konfigurieren.

Zweite:

Gerade wenn es:

execArgs = System.getProperty('exec.args') 
if(execArgs)  
    args = execArgs.split() 

Herausgegeben von Frage Fragesteller: verwenden, wenn Arbeit erledigt, aber ich hatte die Syntax etwas zu ändern.