Clojure的一个优势是其代码的恢复力,即几年前编写的东西今天仍然可以工作。
如果你不更改依赖关系,它将继续工作。
我认为人们需要考虑为什么需要更新一个被现有依赖项依赖的Java库?如果你不更新它,它仍然会继续工作。只有当你明确更改你自己的项目中的版本时,它才会出问题,而这种更改总是伴随着风险,你可能会破坏使用它的另一个依赖项。
是的,有时更新Java库的版本有很好的理由——比如解决CVE(安全漏洞通用识别码),或者你可能有两个依赖项,它们都依赖于那个Java库,你想更新其中一个依赖项。但是这种改变总是伴随着风险——甚至Java库的修补版本更新也可能(确实会!)以各种方式造成破坏。
作为一个CI(持续集成)管道,如果出现新的反射警告,就会导致构建失败的,我宁愿有一个保证没有反射,并能立即在本地看到这个错误,而不是在更远的地方才抓到由这个变更引起的问题。