java.version
属性中输入什么值?,对于Java 8,我们使用1.8
,就像the documentation shows一样,对于Java 9,它是1.9
。,我不确定Java 11是否会是1.11
(尽管它似乎不太可能),我看到它在使用maven-compiler-plugin
时只是指定为11
,但我没有使用编译器插件。,例如,我到处搜索,但都找不到答案,因为我读过的几乎所有文档以及与Java版本相关的博客文章都只显示版本8或9。,那么我应该使用什么?1.11
还是只使用11
?,我两个都试过了,我的Web服务器似乎正确启动和正确编译(IntelliJ显示Information:javac 11.0.2 was used to compile java sources
),但我不完全相信更改java.version
值有什么作用,因为我可以将其设置为例如100
,一切正常。,我能找到的唯一相关问题是:Minimum Spring version compatible with Java 11、Spring Boot fails due to a Hibernate error after migrating to JDK 11和Spring 4.3.x with OpenJDK 11,但它们并没有真正揭示任何问题。,简短回答:,正确的方法是对不同的Java版本使用<java.version>
中的下列值:,Java 8:1.8或8Java 9:9
Java 10:10
Java 11:11
Java 12:12
…..
…..
Java 16:16
Java 17:17,因此,对于Java 11,应该是:,实际上,它最后仍然使用
maven-compiler-plugin
进行编译。SpringBoot只配置一个<java.version>
属性,这样通过更改此值,您就隐式地将maven-compiler-plugin
的<source/>
和<target/>
更改为与<java.version>
:,中指定的值相同的值,详细答案:,您似乎想要详细信息来说服您。,因为每个Spring Boot项目都会对父POMspring-boot-starter-parent
defines<java.version>
进行如下扩展:,docs、maven.compiler.source
和maven.compiler.target
是<source>
和<target>
配置参数的user property。由于用户属性的行为,将这两个属性设置为11
意味着设置以下内容:,在maven-compiler-plugin
docs中,<source>
和<target>
是Java编译器(javac
)的-source
和-target
参数。然后,从javac文档中,我们可以看到这两个参数被允许具有以下值:,因此,对于Java 11,<java.version>
应设置为11
。,这篇关于如何在Spring/Spring Boot pom.xml中指定Java版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,