2015-02-11 25 views
7

https://stackoverflow.com/a/23689696/1757491parametri della riga di comando di passaggio in corsa compito

ho iniziato a utilizzare alcune informazioni dalla soluzione proposta dalla risposta di cui sopra: Applicazione Plugin approccio

(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()  
} 

Command Linea:

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

it wor ks ottimo per lo scopo previsto ma sembra avere un effetto collaterale. Ha senso passare gli argomenti della riga di comando per eseguire, ma devo passare li dentro per ogni compito, per esempio:

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

Se lascio il

-Dexec.args="arg1 arg2 arg3" 

ottengo

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

risposta

5

è possibile risolverlo a due modi diversi:

Prima:

exec.args proprietà può essere letto direttamente nella classe principale - quindi non è necessario configurare args nella chiusura run affatto.

Seconda:

Proprio se esso:

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

A cura di Domanda Richiedente: usando se funziona, ma ho dovuto cambiare un po 'la sintassi.

if(System.getProperty("exec.args") != null) { 
    args System.getProperty("exec.args").split() 
} 
Problemi correlati