前言
Maven 是一个强大项目管理工具,但在使用的过程中我遇到了一些意料之外的错误,以此文记录我所经历的各种配置错误和解决办法,从而提高姿势水平。
xxx are not supported at language level ‘5’
错误说明
在使用 try-with-resources 语句时 IDE 报错 Try-with-resources are not supported at language level ‘5’ ,同时编译时报错 java -source 1.5 中不支持 try-with-resources 。使用 lambda 表达式也会提示类似错误。
错误原因
pom.xml 中没有指定 java 版本,maven 使用默认 jdk 版本编译项目,即 jdk1.5,所以新的语法特性都不被支持。
解决方法
在 pom.xml 中以指定源文件版本和编译版本:
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
编译后的项目找不到 xml 文件
错误说明
在学习 Mybatis 时我将 xxxMapper.xml 文件放入 src/main/java/包名/mapper 目录中, 但在运行时报错 java.io.IOException: Could not find resource 包名/mapper/xxxMapper.xml。查看 target 目录发现相应目录下并没有 xml 文件。
错误原因
构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件,即 /src/main/java 目录下的资源文件会被忽略。
解决方法
将资源文件按照规范放入 /src/main/resources 目录中即可避免这个问题。
当然,也可以在 pom.xml 中声明资源文件。
当然,也可以在 pom.xml 中声明资源文件。
<build> <resources> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> </resource> </resources> </build>