使用maven打包时mapper.xml文件没有被打到target文件中去的问题
使用maven打包resources问题
问题背景:当程序运行时,有些方法用到了mapper.xml文件中sql语句时,若maven打包时没有将mapper.xml打到target文件中时,程序会报错。
一次打包发现target文件的classes文件中没有mapper.xml文件,检查pom.xml文件的编译配置看看是否指定了编译resources文件夹下所有文件,检查了是加了的。虽然mapper.xml文件没有被打包,但是resources文件夹下yml文件被打包了。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<!--包含文件夹以及子文件夹下所有资源-->
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>

怀疑是不是pom文件中的build写的有问题,将mapper文件移除文件夹直接放入resources文件下打包,发现mapper文件被成功打包了。
pom文件的build写的没有问题,此时怀疑是否同名同路径的问题。java文件夹下有/org/mapper路径,resources文件夹下也有/org/mapper的路径。此时将resources文件夹下创建了个mappers目录,将/org/mapper文件夹放入其中,打包后mapper文件被成功打包到target的classes文件中,其mapper文件的完整目录也在其中。
总结:遇到resources下的文件没有成功打包时,一检查pom文件build配置,二检查是文件路径是否与src/main/java下的路径一致了。
记得application.yml或application.properties文件中指定mapper文件所在位置。
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台sql日志输出
global-config:
db-config:
logic-delete-field: deleted # 逻辑删除
logic-delete-value: 1
logic-not-delete-value: 0
mapper-locations: classpath:mappers/**/*.xml # mapper文件所在路径
#mybatis:
# mapper-locations: classpath:mappers/**/*.xml
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)