java.version 和 maven.compiler.target 之间的区别 [重复]
Posted
技术标签:
【中文标题】java.version 和 maven.compiler.target 之间的区别 [重复]【英文标题】:Difference between java.version and maven.compiler.target [duplicate] 【发布时间】:2018-02-10 18:19:36 【问题描述】:在 maven 属性中指定 java 版本时可能有两个不同的属性:
<properties>
<java.version>7</java.version>
</properties>
和
<properties>
<maven.compiler.source>7</maven.compiler.source>
<maven.compiler.target>7</maven.compiler.target>
</properties>
有什么区别,什么时候用什么?
【问题讨论】:
【参考方案1】:这两种配置 Java 版本的方法产生完全相同的结果。
1) 这是 standard Maven way 用于评估源和目标 Java 版本:
<properties>
<maven.compiler.source>7</maven.compiler.source>
<maven.compiler.target>7</maven.compiler.target>
</properties>
2) 虽然那是Spring Boot specificity:
<properties>
<java.version>7</java.version>
</properties>
不声明源版本和目标版本是一种快捷方式属性,因为它们具有相同的值。
从the spring-boot-starter-parent pom可以看出java.version
是用来赋值maven.compiler.source
和maven.compiler.target
的:
<properties>
<java.version>1.8</java.version>
....
<maven.compiler.source>$java.version</maven.compiler.source>
<maven.compiler.target>$java.version</maven.compiler.target>
</properties>
这种方式可能是有意义的,因为大多数时候,源版本和目标版本都是这种情况(但这不是标准方式)。
如果您开发 Spring Boot 应用程序,您可以选择其中一个。 否则,只应使用第二个。
【讨论】:
以上是关于java.version 和 maven.compiler.target 之间的区别 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Maven项目提示:源值1.5已经过时,将在未来发行版中删除