我希望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插件。
我使用了错误的电话吗?或者可能是错误的扩展点?
答案 0 :(得分:3)
请勿致电Run.getEnvironment
。而是使用传递给EnvVars
的{{1}}。