在 JAR 文件的名称中包含版本号是否有任何功能原因?

Is there any functional reason for including the version number in the name of a JAR file?

在Java中,我经常看到以软件版本号命名的JAR文件(jsoup-1.11.2.jar),而其他的则没有(freemarker.jar)。

这是最好的 practice/convention,还是有一些功能上的原因?

在文件名中包含版本可让您快速确定您拥有的 n 个文件中的哪个是最新的。此外,如果您无法从程序中确定版本是什么,它可能会有所帮助。

简单回答:不,这纯粹是约定俗成。

显然,当版本号像这样被硬编码时,检查版本的工具可以很容易地做到这一点。但是没有依赖它的通用(如基于 jvm 的)工具。

除此之外 - 有时这种方案甚至会适得其反。在我们自行构建的构建设置中,我们必须始终记住在替换 JAR 文件后更新构建脚本——因为新版本会更改文件名(因为文件名的版本部分)。