我试图从 clojure --help
获取指导,并在 clojure.org 的文档中进行阅读,但无法找到任何 CLI 选项标志,当找不到 -M:undeclared-alias
时能快速失败。
当前(至少在 1.11.1.1155
中)你只会得到一个警告,随后是 REPL 提示符。
❯ clojure -M:not-found 警告:指定的别名未声明,且未使用:[:not-found] Clojure 1.11.1 user=> ^D ❯ clojure -version Clojure CLI 版本 1.11.1.1155
我希望至少在 clojure
工具中看到一个选项,当使用未声明的别名尝试调用时,它不会打印警告并正常继续,而是以代码 > 0 退出。这样,CI 构建(如遇到输入错误或配置错误)就能快速失败。
例如 --strict-aliases
?
今天在我们的 CI 构建中遇到了这个不愉快的行为,CI 脚本进入了错误的目录,并尝试启动我们在 deps.edn
中定义的别名。
因此,CI 在错误的目录中进行这个 clojure -M:our-tests
操作,该目录没有 deps.edn
文件。结果是只显示了一个 REPL 提示符 - 然后在不知名的原因下,构建工作被退出,返回 exit 0
,而整个管道是绿色的。
随机注意到的结果,这实际上并没有运行测试。哎呀。
当然,我可以在 CI 脚本中的 clojure
调用周围添加一些检查,但我认为这可能是 CLI 的一个有益特性。