用于Maven构建Spring Boot产品的Java编译器版本

har*_*pot 7 spring-boot

在这里,它说Spring Boot 1.5.2.RELEASE需要Java 7或更高版本; 和Java 1.6作为默认编译器级别.

那么这种差异会导致问题吗?

Rea*_*ted 9

使用比编译代码更新版本的编译器几乎总是安全的.反之并非总是如此.

除了bureaquete建议配置Apache Maven编译器插件之外,您还可以覆盖POM的属性部分中的版本:

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)

为此,您需要正确安装和配置Java 7.


bur*_*ete 7

您可以使用以下插件为Maven构建指定JDK;

Apache Maven编译器插件.

<project>
  ...
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.1</version>
          <configuration>
            <source>1.7</source>
            <target>1.7</target>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

尝试使用JDK 1.6编译Java1.7代码确实会导致问题.

你也可以使用java.version属性来指定你的Java版本,描述在这里,你可以看到的使用maven-compiler-pluginspring-boot-parent的pom.xml,在这里

感谢Brandon MinternM.Deinum

  • 你不需要那个插件,因为Spring Boot已经提供了这个插件.您只需要设置`java.version`属性或`maven.compiler.source`和`maven.compiler.target`属性.无需为此明确添加插件. (3认同)