java.version和maven.compiler.target之间的区别

时间:2017-09-01 16:22:25

标签: java maven

在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 个答案:

答案 0 :(得分:1)

这两种配置Java版本的方法产生完全相同的结果。

1)这是standard Maven way值的源和目标Java版本:

Path: /Users/username/Documents/apache-tomcat-8.5.15/bin/etc 

ArrayList<String> readList = null;
String workingDir = System.getProperty("user.dir");
String fileName = "File.txt";
File file = new File(workingDir+"/etc/" + fileName);
readList = resourceReader.readFile(file.getAbsolutePath());

2)虽然这是Spring Boot specificity

<properties>
    <maven.compiler.source>7</maven.compiler.source>
    <maven.compiler.target>7</maven.compiler.target> 
</properties>

这是一个快捷方式属性,不会声明源版本和目标版本,因为它们具有相同的值。

the spring-boot-starter-parent pom,我们可以看到<properties> <java.version>7</java.version> </properties> 用于评估java.versionmaven.compiler.source

maven.compiler.target

这种方式可能有意义,因为大部分时间,源和目标版本都是这种情况(但它不是标准方式)。

如果您开发Spring Boot应用程序,则可以选择其中一个 否则,只应使用第二个。