使用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>