将原始 问题 从 Clojurians Slack 移动过来
当我将我的一个项目迁移到 JDK 19 时,我使用 JAVA_CMD 环境变量将 clojure 指向了 jdk。一切正常,直到我到达 CI 中的 uber-jar 步骤,它拒绝承认 JDK 19 的功能。
花费了一些时间,包括阅读 tools.build 源代码,我终于意识到为什么它没有传播 JAVA_CMD 变量,结果是我在 b/compile-clj 调用中必须读取环境变量并传递 :java_cmd。
我可以理解为什么会有这样的行为,但 :java_cmd 默认为 JAVA_CMD 的值是否可以被认为是一个合理的想法?对我来说,这感觉会更直观,因为 tools.build 函数的调用大多数情况下都是来自 shell。