DragonCave

一个没有黄段子的无聊小站

Maven 错误笔记

前言

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 中声明资源文件。

<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>
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据