提问人:waffledood 提问时间:11/9/2023 最后编辑:Mark Rotteveelwaffledood 更新时间:11/9/2023 访问量:92
Java 库的 Java 兼容性
Java compatibility of Java library
问:
如何确定 Java 库与哪个 Java 版本兼容?
作为参考,我需要升级以下库:
// build.gradle
dependencies {
compile('javax.mail:mail:1.4')
compile group: 'org.apache.velocity', name: 'velocity', version: '1.7'
}
我的 Spring Boot 项目使用 Java 8。
我想知道这两个库的更新版本是否仍支持 Java 8。
现在,我正在查看 JavaMail API 的 mvnrepository 页面,但我没有看到任何关于支持哪个 Java 版本的内容。
答:
3赞
Mark Rotteveel
11/9/2023
#1
如果您使用的是 Spring Boot 2.7,则应将该依赖项替换为:javax.mail:mail:1.4
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
</dependency>
或者对于 Gradle:
compile('com.sun.mail:jakarta.mail')
(没有版本,Spring Boot 会为您管理它,对于 Spring Boot 2.7.19,它将解析为 。com.sun.mail:jakarta.mail:1.6.7
JakartaMail/JavaMail 1.6.x 支持 Java 7 及更高版本。
如果升级到 Spring Boot 3.x(需要 Java 17),则需要使用
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>angus-mail</artifactId>
</dependency>
或者对于 Gradle:
compile('org.eclipse.angus:angus-mail')
转到Spring Boot 3.x还涉及API命名空间的更改(from to ),因此需要对代码进行一些更改。javax.mail
jakarta.mail
对于 Velocity,您可能需要升级到 2.3 版(支持 Java 8 或更高版本),请参阅 Apache Velocity 站点,但我不确定从 1.7 版升级到 2.3 版涉及什么,因此这可能是很多工作(例如,请参阅 2.0 文档从早期版本升级;另请查看 2.3 文档了解 2.1, 2.2 和 2.3 更改)。
评论
javax.mail:mail
javax.mail
com.sun.mail
com.sun.mail:jakarta.mail
com.sun.mail:javax.mail
org.eclipse.angus:angus-mail