Clojure的一个优势是代码的弹性,即几年前编写的代码至今仍然可以工作。
如果你不更改依赖关系,它将继续工作。
我认为人们需要考虑为什么要更新一个当前依赖的Java库?如果你让它保持原样,它将继续工作。只有当你明确地更改你自己的项目中版本时,它才会出现问题;这种改变总是有可能破坏一个也使用该库的依赖。
是的,有时有很好的理由要覆盖Java库的版本——比如解决CVE,或者你有两个依赖都依赖于这个Java库,你想更新其中一个依赖。但这类变更总是存在风险——即使是Java库的补丁发行版更新也可能(并且确实)以各种方式引入破坏。
作为一名CI管道配置者,如果出现新的反射警告会导致构建失败,我更愿意保证没有反射,并立即在本地看到错误,而不是等待更线下的变更引入的问题被发现。