1.知识回顾

idea的maven项目中,默认情况下

  • ①会将 src/main/java(源代码目录) 中的 .java文件 编译/发布到 target/classes 中,其他文件会被忽略。
  • ②会将src/main/resources 中的的 配置文件 编译/发布到 target/classes 中。

2.产生的问题

这时会产生一个问题 :
如果src/main/java目录下有配置文件呢?

那必然是不会被编译到 target/classes 中的,这时可能会因此而产生一些bug!
如下图 在java目录下的 XxxMapper.xml配置文件则不会被编译且放入到 target/classes

ps: 而在eclipse中就不存在这样的问题,eclipse中的 src目录 下的的xml等资源文件/配置文件在编译时会自动打包放入到classes文件夹中,因为eclipse编译build工程时,不依赖pom文件。

在这里插入图片描述

3.解决方法

pom.xml文件中添加 如下配置 ,即可将 src/main/java下的 xml文件也进行编译且放入到target/classes目录中

<build>
    <resources>
        <!-- XxxMapper.xml文件在java目录下 -->
        <resource>
            <directory>src/main/java</directory>
            <includes>
        <!--指定src下的内容编译 /.xml文件进行编译且放入到 target/classes目录中-->
                <include>**/*.xml</include>
            </includes>
        </resource>
        
        <!-- 将src/main/resources的配置文件编译且放入到 target/classes目录中 -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
    </build>
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐