如何通过命令行将环境变量传递给Gradle测试?

3

我有一个标准的Java项目布局,在一些测试中我使用System.getenv("my_var")。我想要通过命令行(从CI服务器)运行我的测试,并传递环境变量的值。就像这样:

./gradlew test -Dmy_var=xyz

当然,这个不起作用,因为测试是由不同的JVM运行的。那么传递环境变量的确切命令是什么?我宁愿不更改我的构建脚本、创建新任务等,只想通过命令行传递环境变量。我该怎么做呢?


1
你要么必须更改你的构建脚本,要么更改你的测试。我个人希望隔离使用环境变量的位置并注入它们,因为System.getenv引入了通常不受你控制的状态。 - Makoto
2
即使使用普通的 java-Dthis=that 也只会设置一个系统属性而不是环境变量。并且仅在“要运行”的参数(主类或模块名称或jar名称,具体取决于情况)之前(左侧)这样做。 - dave_thompson_085
1个回答

3
找到了。非常简单:
my_var=xyz ./gradlew test 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接