我是java新手。当我查看 jar 文件时,我看到文件名中包含版本而不是包含版本。
- 在什么情况下这些都是一个好主意?
- 将版本号放在 jar 文件名中的优点和缺点是什么?
- 如果版本在 jar 文件名中,是否需要重新编译客户端 jar 才能使用它?
您正在寻找主观意见....我对此有主观意见。我维护 JDOM 项目。我们有许多 jar,在项目的早期,我们有无版本的 jar 名称。现在我们有了一个版本化的 jar 名称。
我们切换的原因是:
我听说有一个无版本 jar 的原因(但我不同意)
我没有理由遇到令人信服的无版本 jar 是合适的。
*:例如,无意义的缺点,例如可执行 jar 可能更容易在没有版本编号的情况下键入
**:例如,如果你有com.foo.Bar
两个 jar 文件中的类,类加载器将加载其中一个,通常取决于哪个是首先找到的。如果您有同一个 jar 的两个版本,这同样适用——您通常不知道将使用哪个版本。
我知道的唯一问题是当您构建在工作站上执行或作为脚本的一部分执行的 jar 文件时。
您可以通过在 jar 文件中包含脚本文件来解决此问题。
这是一个 Windows 示例:
应用程序.cmd
java.exe application_2013_05_10.jar
更新 jar 文件时,会同时更新脚本文件。用户执行 application.cmd 脚本文件。
当然,好主意,使用 Maven http://maven.apache.org/,它会自动构建带有版本的 jar,没有缺点只有优点