使用 Java 9 运行 Spring Boot 已翻译 100%

oschina 投递于 2018/02/28 15:55 (共 3 段, 翻译完成于 02-28)
阅读 4220
收藏 18
1
加载中

如果你希望使用 Java 9 运行 Spring Boot 应用程序,这篇文章将会对你有所帮助。

注意:问题跟踪器包含了所有未解决的关于 Java 9 的已知问题,所以在报告新问题前,请查看该列表。

要求

Spring Boot 2.0 是首个支持 Java 9 的版本(同时支持 Java 8)。如果你正在你使用 1.5.0 并希望使用 Java 9,你应该升级到 2.0 版本,官方表示目前没有计划在 Spring Boot 1.5.x 系列上支持 Java 9。

AspectJ

使用 Java 9,如果你需要编译 JDK 中的类,则需要使用 AspectJ 1.9(目前处于 RC 阶段)。这是一个临时的解决方案,因为 Aspect 1.9 GA 即将推出,而且 Spring Boot 也将升级到该版本。在大多数情况下,使用 AspectJ 1.8(Spring Boot snapshot 中的默认版本),Spring AOP 也能正常运行。

局长
翻译于 2018/02/28 15:57
0

JAXB

升级时可能会遇到以下情况:

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Hibernate 通常需要的 JAXB 不再默认提供。你需要为你的项目添加以下依赖:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

或者你可以添加 java.xml.bind 模块以使用 Java 9 恢复该功能。

Testing

使用 Java 9 进行测试时,最新的 maven-surefire-plugin 版本(2.20.1)引入了回归错误,你可以降级到 2.20.0,或显式添加一个模块以防止引入 java.se.ee:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<argLine>--add-modules java.base</argLine>
	</configuration>
</plugin>
局长
翻译于 2018/02/28 16:02
0

已知的限制

下面这些库尚未完全支持 Java 9:

  • Apache Cassandra,详情请查看 #10453

  • 除非以打包的 war 形式运行,否则 JSP TLD 会附带有嵌入式的 Tomcat,详情请查看 #10456

局长
翻译于 2018/02/28 16:02
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(5)

Credo-Zhao
Credo-Zhao
jdk别跑那么快,你们看看隔壁google的angular,又TM彪版本号了.....
liuqiangchengdu
liuqiangchengdu

引用来自“薛柯基”的评论

一般规律。2年后jdk14出了。
这规律还没有正式形成,只能是预期
小药八旦子
小药八旦子
一般规律。2年后jdk14出了。
12叔
12叔
一般规律 jdk出2年后就可以用了
一生做恶
一生做恶
好快!
返回顶部
顶部