【发布时间】:2021-08-23 08:22:14
【问题描述】:
我的客户有一个本地 AzureDevops 设置。 我有一个专用的 Windows 服务器,用作构建服务器。代理安装并以用户 X 身份运行。
Java 应用程序是使用第三方创建的自定义脚本构建的。在 YAML 中使用此脚本启动构建:
cmd /c ""C:\Program Files\Git\bin\bash.exe" --login -i --
./deployment/buildKit.sh -kn $(buildnumber) -ah /C/apache-ant-1.10.9""
在我们不得不更改 Java 版本之前一切正常。在构建服务器上以用户 X 交互方式登录时,我安装了要使用的新 java 版本,更改了 JAVA_HOME,构建脚本运行良好,使用新需要的 java 版本没有错误。
如果我以用户 X 的身份在机器上运行 SET,我会得到:
JAVA_HOME=C:\Program Files\Java\jdk-11.0.6+10
我在 YAML 中添加了 SET 以查看使用了哪个 JAVA_HOME 并在我得到的日志中:
JAVA_HOME=C:\Program Files\AdoptOpenJDK\jdk-8.0.275.1-hotspot\
这是“旧”版本。因此构建失败。 任何想法为什么运行管道与 interactif 相比有不同的 JAVA_HOME ?又该如何解决呢?
【问题讨论】:
-
你试过重启 build-agent 或 maschine 吗?代理仅在启动时读取这些变量,因此如果您更新 java 之类的程序并更新环境变量,代理仍将使用旧值
-
天啊,这样的新手错误!!!!那成功了。谢谢。
-
@D.J.您能否将您的评论转换为回复,以便 Bril 将其标记为答案?
-
@KrzysztofMadej 确定
标签: azure-devops azure-pipelines azure-pipelines-build-task azure-pipelines-yaml