2017-10-25 8 views
3

In meinem build.gradle habe ich eine Aufgabe:lesen Befehlszeile gradle Vars in der Klasse

run { 
    dependsOn ':jar' 
    args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ] 
} 

Ich möchte Befehlszeilen args angeben und sie in meiner Klasse zu lesen.

Ich habe versucht:

.\gradlew.bat run -Dhttpport=8825 -Phttpport=8825 

aber die Linien in meiner Klasse:

log.info "port = ${System.getProperty('httpport')}" 
log.info "port = ${System.getenv('httpport')}" 

log null s für beide Fälle.

Was fehlt mir? Diese

Antwort

3

:

.\gradlew.bat run -Dhttpport=8825 

Sie vorbei Systemeigenschaften zum gradle selbst, nicht auf den Prozess wird es beginnen. Um es auf diese Weise arbeiten Sie müssen run wie folgt konfigurieren:

run { 
    dependsOn ':jar' 
    args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ] 
    systemProperties System.properties 
} 

und:

.\gradlew.bat run -Dhttpport=8825 

Sie können auch Systemeigenschaften mit Projekteigenschaften (-P) so konfigurieren:

run { 
    dependsOn ':jar' 
    args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ] 
    systemProperties [httpport:project.httpport] 
} 

und dann:

.\gradlew.bat run -Phttpport=8825 
Verwandte Themen