简述
使用Maven编译Java项目,默认的jdk编译版本是1.5(
参考官网的说明-》https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html)。
嗯~,有时候会导致jdk版本不匹配(比如代码中使用了jdk1.8的新特性,这是就需要使用jdk1.8进行编译)。
解决方案
方案一:全局设置
在${MAVEN_HOME}/conf/setting.xml中改变默认的编译版本,激活profile:
<profiles>
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<encoding>UTF-8</encoding>
</properties>
</profile>
</profiles>
方案二:项目单独配置
好的实践:在项目中单独配置jdk版本。将项目在其它设备上依然能够保证所用jdk版本正确。
修改pom文件中,加入以下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
方案三:项目单独配置(简化加强版)
推荐使用此方式。
修改pom文件中,加入以下配置:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>