我希望 gradle 插件能够获取在withEnv
步骤(或其他包装类型)中设置的环境变量。当我使用sh
步骤调用 gradle 时,找到了变量,但是当我使用 gradle 插件时,却没有。
gradle 插件执行与此等效的操作:
EnvVars env = run.getEnvironment(taskListener);
launcher.launch().cmds(args).envs(env).stdout(gca)
.pwd(rootLauncher).join();
run.getEnvironment() 的 javadoc 指出:
返回包含用于启动此构建进程的环境变量的映射。调用外部进程的 BuildSteps 应该使用它。这允许 BuildWrappers 和其他项目配置(如 JDK 选择)生效。
与早期的 getEnvVars() 不同,此映射包含整个环境,而不仅仅是覆盖,因此可以内省值以更改其行为。
如果我调试插件,我发现环境中传递给 gradle 调用的变量少于十几个,这些变量withEnv
都不是应该提供的。据我所知,该sh
步骤使用了一个完全不同的扩展点,并且直接给出了一个EnvVars
看起来更完整的实例。我相当确定问题不在withEnv
,但我不知道如何修复 gradle 插件。
我打错电话了吗?或者可能是错误的扩展点?