Clojure的一个优点是代码的弹性,即多年前的代码仍然适用于今天。
如果不更改依赖项,它将继续工作。
我认为人们需要考虑 为什么 更新那些依赖于现存依赖项的Java库?如果你让它保持原样,它会继续工作。只有当你明确更改你自己的项目中的版本时,它才会中断,这种改变总是存在中断其他也使用它的依赖项的风险。
是的,有时有很好的理由要覆盖Java库的版本——例如为了解决CVE漏洞——或者你可能有两个都依赖于那个Java库的依赖项,你想要更新其中的一个。但这类变更总是伴随着风险——甚至Java库的修补版本更新也可能(确实也会!)以各种方式引入破坏。
作为一个如果CI流水线出现新的反射警告就会失败的构建者,我更希望有保证没有反射并立即在本地看到那个错误,而不希望错过变更在下线路上引入的问题。