首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Spring Boot项目从JDK 8升级到JDK 11

将Spring Boot项目从JDK 8升级到JDK 11
EN

Stack Overflow用户
提问于 2020-03-05 04:42:52
回答 1查看 5.1K关注 0票数 4

我正在尝试将Spring引导应用程序从JDK 8升级到JDK 11,并进行了以下更改:

1.在pom.xml中使用java.version

代码语言:javascript
复制
<properties>
<java.version>11</java.version>
</properties>

2.添加已删除模块的依赖关系:

代码语言:javascript
复制
<!--1.JAF(java.activation)-->

<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
</dependency>

<!--2.JTA(java.transaction)-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>

<!--3.JAXB(java.xml.bind)-->
<!--API-->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>

<!--Runtime-->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
</dependency>

<!--4.JAX-WS(java.xml.ws)-->
<!--API-->
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.2</version>
</dependency>

<!--Runtime-->
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.2</version>
</dependency>

<!--5.CommonsAnnotations(java.xml.ws.annotation)-->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>

3.添加如下插件:

代码语言:javascript
复制
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
</plugin>

当我运行mvn clean package时,我得到一个错误:

代码语言:javascript
复制
compiler message file broken:key=compiler.misc.msg.bugarguments=11.0.4-redhat,{1},{2},{3},{4},{5},{6},{7}
java.lang.StackOverflowError
atjdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:652)
atjdk.compiler/com.sun.tools.javac.comp.Attr.visitSelect(Attr.java:3573)
atjdk.compiler/com.sun.tools.javac.tree.JCTree$JCFieldAccess.accept(JCTree.java:2114)
atjdk.compiler/com.sun.tools.javac.comp.Attr.attribTree(Attr.java:655)
atjdk.compiler/com.sun.tools.javac.comp.Attr.visitApply(Attr.java:2006)
atjdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1634)

对我做错了什么或其他我需要做的事情有什么想法吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-04-01 20:49:28

我通过添加以下内容将我的SpringBoot项目从Java8版本更新到Java16

代码语言:javascript
复制
<properties>
    <java.version>16</java.version>
</properties>

当然,首先我在Mac上安装了Java16JDK。

以及在InteliJ首选项中设置以运行maven.

JDK importer: JAVA_HOME(/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home)

你可以在IntelliJ IDEA找到它,如果你去

Preferences > Building, Execution, Deployment > Building Tools > Maven > Importing

Spring Boot应用程序在pom.xml文件的属性标记中指定JDK版本。

您的父POM允许我们配置默认插件和多个属性,包括Java版本-默认情况下,Java版本是1.8。

但是,我们可以通过指定java.version属性来覆盖父级的默认版本:

代码语言:javascript
复制
<properties>
    <java.version>16</java.version>
</properties>

通过设置java.version属性,我们声明源版本和目标版本都等于16。

以上步骤仅适用于SpringBoot应用程序。

如果需要更新Spring应用程序,这些链接可能会有所帮助:

https://www.baeldung.com/maven-java-version

https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60534383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档