在 class 中读取命令行 gradle 变量
Read command line gradle vars in class
在我的 build.gradle
我有一个任务:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
}
我想指定命令行参数并在我的 class 中阅读它们。
我试过了:
.\gradlew.bat run -Dhttpport=8825 -Phttpport=8825
但是我的 class 中的行:
log.info "port = ${System.getProperty( 'httpport' )}"
log.info "port = ${System.getenv( 'httpport' )}"
两种情况 log null
s。
我错过了什么?
这个:
.\gradlew.bat run -Dhttpport=8825
您正在将 系统属性 传递给 gradle 本身,而不是它将启动的进程。要使其以这种方式工作,您需要按如下方式配置 run
:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
systemProperties System.properties
}
和:
.\gradlew.bat run -Dhttpport=8825
您还可以使用项目属性 (-P
) 配置系统属性,因此:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
systemProperties [httpport:project.httpport]
}
然后:
.\gradlew.bat run -Phttpport=8825
在我的 build.gradle
我有一个任务:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
}
我想指定命令行参数并在我的 class 中阅读它们。
我试过了:
.\gradlew.bat run -Dhttpport=8825 -Phttpport=8825
但是我的 class 中的行:
log.info "port = ${System.getProperty( 'httpport' )}"
log.info "port = ${System.getenv( 'httpport' )}"
两种情况 log null
s。
我错过了什么?
这个:
.\gradlew.bat run -Dhttpport=8825
您正在将 系统属性 传递给 gradle 本身,而不是它将启动的进程。要使其以这种方式工作,您需要按如下方式配置 run
:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
systemProperties System.properties
}
和:
.\gradlew.bat run -Dhttpport=8825
您还可以使用项目属性 (-P
) 配置系统属性,因此:
run {
dependsOn ':jar'
args = [ 'run', project.mainVerticleName, '-cluster', "-launcher-class=$mainClassName", '-Denvironment=development' ]
systemProperties [httpport:project.httpport]
}
然后:
.\gradlew.bat run -Phttpport=8825