如何解决如何在Spring / Spring Boot pom.xml中指定Java 11版本?
正确的方法是<java.version>
对不同的Java版本使用以下值:
- Java 8:1.8或8
- Java 9:9
- Java 10:10
- Java 11:11
- Java 12:12
因此,对于Java 11而言,应为:
<properties>
<java.version>11</java.version>
</properties>
但是,我不确定Java 11是否为“ 1.11”(似乎不太可能),并且在使用maven-compiler-plugin时,我已经将其指定为“ 11”,但是我没有使用编译器插件。
实际上,最后它仍然用于maven-compiler-
plugin
编译。Springboot只是配置了一个<java.version>
属性,这样通过更改此值,您就隐式地将更改为maven-
compiler-plugin
,<source/>
并将<target/>
其更改为与在<java.version>
:中指定的值相同的值:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source> <!-- same as <java.version> -->
<target>11</target> <!-- same as <java.version> -->
</configuration>
</plugin>
好像您想要细节说服您。
这是因为每到spring启动项目将扩展父POM spring-boot-starter-
parent
其定义 <java.version>
如下:
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
从Maven的编译器插件的文档,maven.compiler.source
并且maven.compiler.target
是用户属性的<source>
和<target>
配置参数。由于用户属性的行为,将这两个属性设置为11
意味着要设置以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source> <!-- maven.compiler.source -->
<target>11</target> <!-- maven.compiler.target -->
</configuration>
</plugin>
再次从maven-compiler-plugin
文档中获取,<source>
并且<target>
是Java编译器()的-source
and-target
参数javac
。然后,从javac文档中,我们可以看到这两个参数允许具有以下值:
因此,<java.version>
应将其设置11
为Java 11。
解决方法
将Java 11指定为要在Spring(或Spring Boot)pom.xml文件中使用的版本的正确方法是什么?
即,我需要java.version
在pom 的属性中添加什么值?
1.8
正如文档所示,对于Java
8,我们使用的是Java 9 1.9
。
我不确定Java 11是否会1.11
(尽管似乎不太可能),而且我已经看到它只是11
在使用时指定的maven-compiler-
plugin
,但是我没有使用编译器插件。
例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
我到处搜索,找不到答案,因为我阅读的几乎所有文档以及与Java版本有关的博客文章仅显示版本8或版本9。
那我该怎么用呢?1.11
还是只是11
?
我尝试了两者,但是我的Web服务器似乎可以正确启动并正确编译(IntelliJ显示Information:javac 11.0.2 was used to
compile java sources
),但是我并不完全相信更改java.version
值可以完成任何事情,因为我可以将其设置为eg
100
并且一切正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。