我想知道是否可以使用Gradle为Java应用程序设置系统属性?
我尝试使用gradle.properties文件并将属性定义为
systemProp.name = my name
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从Java应用程序中获取该属性时
System.getProperty("name")
Run Code Online (Sandbox Code Playgroud)
找不到该属性.
build.gradle和gradle.properties位于项目的根文件夹中.
这就是我的build.gradle的样子:
apply plugin: 'war'
apply plugin: 'appengine'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.8.6'
}
}
appengine {
httpPort = 8081
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'com.google.inject', name: 'guice', version: '3.0'
compile group: 'com.google.inject.extensions', name: 'guice-servlet', version: '3.0'
compile group: 'javax.servlet', name: 'servlet-api', version: '2.5'
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.2.0.Final'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'
compile 'com.google.protobuf:protobuf-java:2.5.0'
compile 'com.google.appengine:appengine-api-1.0-sdk:1.8.6'
compile 'com.google.template:soy:2012-12-21'
compile 'org.json:json:20090211'
}
Run Code Online (Sandbox Code Playgroud)
这就是我的build.properties的样子:
systemProp.firstName=Marko
systemProp.lastName=Vuksanovic
Run Code Online (Sandbox Code Playgroud)
这是AppEngine应用程序的一部分,我使用以下命令运行它:
gradle appengineRun
Run Code Online (Sandbox Code Playgroud)
小智 9
我只是偶然发现它与gradle应用程序插件一起使用.添加到运行任务.效果很好:
run {
systemProperties['MYPROP'] = '/my/prop/value'
}
Run Code Online (Sandbox Code Playgroud)
这是我如何做的,为Selenide测试框架设置道具:
test {
systemProperty "browser", "chrome"
systemProperty "webdriver.chrome.driver", "$projectDir/drivers/chromedriver"
}
Run Code Online (Sandbox Code Playgroud)
小智 9
这对我有用(使用 Kotlin DSL):
tasks.withType<JavaExec> {
systemProperty("key", "value")
}
Run Code Online (Sandbox Code Playgroud)
设置的系统属性gradle.properties仅在运行Gradle的JVM中可用。
appengineRun:启动运行您的项目代码的本地开发服务器。
jvmFlags:JVM标志传递给本地开发服务器。
如果您需要系统属性在单独的JVM的应用程序引擎中可用,则应使用jvmFlags属性。
明确地:
appengine {
jvmFlags = ['-DfirstName=Marko', '-DlastName=Vuksanovic']
}
Run Code Online (Sandbox Code Playgroud)
使用gradle.properties:
appengine {
jvmFlags = ['-DfirstName=$firstName', '-DlastName=$lastName']
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23506 次 |
| 最近记录: |