在本教程中,你学到了如何从gradle构建脚本中传递命令行参数。
- 使用-P选项的项目属性
- 使用-D选项的java系统属性
- 使用应用程序插件的args选项
如何用gradle脚本传递项目命令行属性
在这里,项目属性是通过gradle命令的-P 选项传递的。
在build.gradle中,任务运行被配置为读取参数-project.hasProperty
task run {
if ( project.hasProperty("argsarray") ) {
args Eval.me(argsarray)
}
}
和java类来读取参数
public class Test {
public static void main(String[] args) throws Exception {
for (String item : args) {
System.out.println("[" + item + "]");
}
}
让我们看看如何从gradle命令行传递参数。
gradle run -Pargsarray="['one','two']"
如何使用系统环境属性传递命令行参数
像java命令行一样,Gradle命令也接受带有-D选项的参数 这里有一个命令可以将自定义属性传递到命令行。
gradle -Dtest.hostname=localhost
在build.gradle中,你可以在ext 块中进行配置。ext块保存所有用户定义的与项目、系统和任务有关的属性参数。
使用System.getProperty读取参数。
ext {
hostname = System.getProperty("test.hostname", "localhost");
}
这样就可以传递所有的参数和值
你可以在gradle脚本的任何地方使用project.ext.hostname 属性来读取值。
如果你想从gradle脚本中传递参数到测试用例,首先,读取属性并传播到测试任务。
test {
systemProperty "test.hostname", "localhost"
}
以下是将所有系统属性传递给gradle test 任务
test {
systemProperties(System.getProperties())
首先配置,应用程序和java插件在build.gradle
apply plugin: "java"
apply plugin: "application"
application {
mainClassName = com.ch.Test
}
这里有一个java类
package com.ch;
public class Test {
public static void main(String[] args) {
System.out.println(args);
}
}
在命令行中,我们可以使用以下命令
在windows下,argumesn值用双引号括起来
gradlew run --args="welcome to java class"
在Linux中,我们可以使用单引号
gradlew run -args='welcome to java class'