指定Java11作为Spring(或Spring Boot)pom中使用的版本的正确方法是什么。xml文件?
也就是说,我需要在java中输入什么值。pom的版本
属性?
对于Java8,我们使用1.8
,就像留档显示的那样,对于Java9,它是1.9
。
我不确定Java 11是否会是1.11
(尽管这似乎不太可能),我看到在使用maven编译器插件时,它被指定为
11
,但我没有使用编译器插件。
例如。
<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
?
我尝试了这两种方法,我的网络服务器似乎启动正确,编译正确(IntelliJ显示信息: javac 11.0.2用于编译java源
),但是我并不完全相信改变java.version
值是什么,因为我可以将其设置为例如100
,一切正常。
我能找到的唯一相关问题是:与Java11兼容的最低Spring版本,在迁移到JDK11和Spring4.3后,Spring Boot由于Hibernate错误而失败。x和OpenJDK 11,但它们并没有真正阐明什么。
我添加它作为一个答案,这样它可以帮助更多的人:
由于Java 9的版本被指定为9
,10
,11
,等等,而不是1.8
,1.7
等等。这里有一些进一步的阅读。
使用
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source> -- Using JDK 11 to compile
<target>11</target> -- Using JDK 11 as target
</configuration>
</plugin>
</plugins>
这篇文章对在JDK 11中使用maven-compiler-plugin很有帮助。
如果有人希望将Java11指定为gradle项目中Spring(或Spring Boot)中使用的版本,那么在build.gradle文件中使用源兼容性='11'或源兼容性='1.11'
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
}
apply plugin: 'io.spring.dependency-management'
group = 'au.com.ranuka'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
//or
sourceCompatibility = '1.11'
repositories {
mavenCentral()
}
dependencies {
}
简短回答:
正确的方法是在
Java8:1.8或8
- Java9:9
- Java10:10
- Java11:11
- Java12:12
- Java16:16
- Java17:17
所以对于Java 11,它应该是:
<properties>
<java.version>11</java.version>
</properties>
但是我不确定Java11是否会是1.11(似乎不太可能),我看到它在使用maven编译器插件时被指定为11,但是我没有使用编译器插件。
实际上,最后它仍然使用
maven编译器插件
进行编译。Springboot只是配置了一个
<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 boot项目都会扩展父pom
spring boot starter父
,它定义了
<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。编译器。source
和maven。编译器。target
是
<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编译器插件
docs,
1.6:JavaSE6中没有引入语言更改。然而,源文件中的编码错误现在被报告为错误,而不是像Java Platform Standard Edition早期版本那样的警告
6:1.6的同义词
1.7:编译器接受带有JavaSE7中引入的特性的代码
7:1.7的同义词
1.8:编译器接受带有JavaSE8中引入的特性的代码
8:1.8的同义词
9:编译器接受带有JavaSE9中引入的特性的代码
10:编译器接受带有JavaSE10中引入的特性的代码
11:编译器接受带有JavaSE11中引入的特性的代码
12:编译器接受带有JavaSE12中引入的特性的代码
因此,
将Java11指定为Spring(或Spring Boot)pom.xml文件中使用的版本的正确方法是什么? 例如,我需要在POM的属性中放入什么值? 对于Java8,我们使用,正如文档所示,对于Java9,我们使用。 我不确定Java11是否是(尽管这似乎不太可能),并且在使用时,我看到它被指定为,但我没有使用编译器插件。 例如。 我到处找都找不到答案,因为几乎所有我读过的文档以及与Java版本
Android Studio给我一个Gradle构建错误,看起来像这样: 现在它给了我这些可点击的提示: 我已经下载并安装了JDK 7。问题是,当我在“文件系统”中选择它时,我只能找到一个名为1.6的目录。0 JDK。此外,JDK 7的安装跳过了我选择安装目录的要点,所以我真的不确定它在哪里。我的java控制面板上说我有“Java7Update79”,所以我很确定我已经接近了,我只需要告诉andr
我想使用最新版本的spring data mongodb,以便使用全文搜索功能,但我不知道如何使用spring boot starter data mongodb依赖项来指定这一点。 你可以在这里阅读:没有指定spring-data-mongodb版本的maven repository。 这是我的pom文件:
问题内容: 我在netbeans上编写了一个Maven代码,大约有2000多行。当我在netbeans上编译它时,一切都很好,但是如果我想在命令行上运行它,则会出现以下错误: 我尝试使用Java 1.3.1,编译器错误,但出现了更多错误。我从其他帖子中发现我应该修改pom.xml,但我不知道如何。这是我的pom.xml 如果您能帮助我,那就太好了。 问题答案: 请参阅配置页面以获取Maven编译器
我用Netbeans编写了一些Maven代码,大约有2000多行。当我在Netbeans上编译它时,一切都很好,但如果我想在命令行上运行它,我会得到这些错误: 我尝试使用Java 1.3.1,编译器错误,但我得到更多的错误。我从其他帖子中发现我应该修改,但我不知道如何修改。下面是我的 如果你能帮我就太好了!
问题内容: 我有一个需要节点版本12或更高版本的Node.js项目。有没有办法在packages.json文件中指定此名称,以便安装程序将自动检查并通知用户是否需要升级? 问题答案: 我认为您可以使用“引擎”字段: 正如您所说的那样,您的代码绝对不能与任何较低版本一起使用,您可能也希望“ engineStrict”标志: 可在npmjs网站上找到package.json文件的文档 更新资料 现在已