问题
我们在创建一个普通的Maven工程的时候,往往会忽略设置编译界别以及JDK的版本,从而导致依赖项编译的时候导致编译级别过低的编译失败。因为IDEA默认的JDK编译级别是1.5.
解决方案
全局配置
在Maven的settings.xml的<profiles>中加入如下配置:
<profile>
<id>jdk18</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>
</properties>
</profile>
这种配置的优点是配置一次,以后的所有项目均会按照次编译级别来编译。
局部配置:配置属性
在工程的pom.xml中配置如下属性:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
此项目会按照此种编译级别来编译。
局部配置:配置插件
在工程的pom.xml中配置如下插件配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
此项目会按照此种编译级别来编译。
文章评论