You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle运行时通过CMD传入的值未被识别问题排查

问题解决:运行时传入的参数未覆盖默认值

核心原因

你代码里用System.getenv("infrastructurePath")读取的是系统环境变量,但在Gradle命令中用-D传递的是JVM系统属性,二者不是同一类参数,所以代码始终读不到你传入的值,只能使用默认的./infrastructure。

两种修改方案

方案一:修改代码读取JVM系统属性

把代码里的System.getenv()替换成System.getProperty(),这样就能读取到-D传递的参数:

private static final String workingDirectory = System.getProperty("infrastructurePath") == null ? "./infrastructure" : System.getProperty("infrastructurePath");

修改后,你原来的Gradle命令无需改动,即可正常获取传入的./infrastructure-localtests。

方案二:修改Gradle命令传递环境变量

如果不想改动代码,可在CMD中先设置环境变量再执行Gradle命令:

set infrastructurePath=./infrastructure-localtests
.\gradlew --info :testModule:testInfrastructure

这样代码里的System.getenv()就能读取到你设置的环境变量值。

内容的提问来源于stack exchange,提问作者Ravish Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:00:55