gpt4 book ai didi

java - 如何在 Java 代码中访问 gradle 参数

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:33 25 4
gpt4 key购买 nike

我有一些 java 经验,我是 gradle 的新手,我加入了一个项目,我必须在其中修改 gradle 文件。

这是我的build.gradle 文件

apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.5
version = '1.0'
dependencies {
testCompile 'org.testng:testng:6.9.10',
'org.seleniumhq.selenium:selenium-java:2.53.0'
}

test {
useTestNG()
testLogging.showStandardStreams = true
}

然后我从 mac 终端使用以下命令运行我的测试套件./build 测试

我想传递一个名为 environment 的参数基于这个参数的这个值,我需要配置我的 url 并为那个环境运行测试。类似于 ./build test environment=dev./build test environment=qa

在我的 java 代码中我会做这样的事情

if(env == 'dev') {
url = "my dev url";
user = "my dev user name"
} else if(env == 'qa') {
url = "my qa url";
user = "my qa user name"
}

如何在终端中传递这个参数?我可以如何在我的代码中使用此参数的一小段会很有帮助(我的 java 代码没有 main 方法)。

注意:我已经使用属性文件并实现了此行为,但我的团队不想更改代码来设置环境。所以我不得不放弃这些更改。

最佳答案

从命令行到 gradle,您可以使用系统属性或项目属性。它将是:

./gradlew test -Denv=dev

./gradle test -Penv=dev

上面的属性现在可以在 build.gradle 中读取,您还需要将它们传递给测试,它必须通过系统属性来完成,因此:

test {
systemProperty 'env', System.properties['env'] ?: 'dev'
}

从命令行获取系统属性或:

test {
systemProperty 'env', project.hasProperty('env') ? project.env : 'dev'
}

在测试类中只使用:

System.getProperty("env")

获得您需要的值(value)。

关于java - 如何在 Java 代码中访问 gradle 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38105243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com