pom.xml
<build>
<resources>
<resource>
<!-- xml放在java目录下-->
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<!--<filtering>false</filtering>
filtering设为true可替换*.xml、*.properties配置文件中的占位符(${jdbc.url})-->
</resource>
</build>
“**” 表示任意级目录,“*.xml” 表示任意xml文件
maven的<resources>标签里<include>**/*.xml</include>配置是什么意思_汉口君呐的博客-CSDN博客_<includes>*.*</includes>
这样配置后,maven才能将 src/main/java中的非java文件打包到target中
Maven学习笔记(十二)-maven打包之resource配置_码农致富的博客-CSDN博客_maven resource
二、Maven项目的标准目录结构
- src
- main
- java 源文件
- resources 资源文件
- filters 资源过滤文件
- config 配置文件
- scripts 脚本文件
- webapp web应用文件
- test
- java 测试源文件
- resources 测试资源文件
- filters 测试资源过滤文件
- it 集成测试
- assembly assembly descriptors
- site Site
- main
- target
- generated-sources
- classes
- generated-test-sources
- test-classes
- xxx.jar
- pom.xml
- LICENSE.txt
- NOTICE.txt
- README.txt
我遇到过target中已经打包mapper.xml文件但是mybatis还是找不到配置的情况,这是需要再配置application.yml文件:
mybatis-plus:
mapper-locations: classpath:com/kakarote/admin/mapper/xml/*.xml
这个路径与target中的目录结果一一对应。
如果把mapper.xml放在resource目录下:
maven打包时会在target/class中生成一个对应resource中路径的新路径
这时application.yml中的配置需要改为:
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml
或
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
有一种情况特殊,当mapper.xml放在同名接口java文件的相同路径时
application.yml中配置的路径不用写绝对地址可以简写为:
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml
或
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
但是mapper.xml与java接口文件(如图中的AdminUserMapper.java)不在同一目录下,比如:
application.yml就不能简写为 mapper-locations: classpath:mapper/xml/*.xml
必须写全路径:mapper-locations: classpath:com/kakarote/admin/mapper/xml/*.xml
mybatis-plus配置xml文件位置_qq_42800468的博客-CSDN博客_mybatis-plus xml配置
maven中resource配置详解_2021不再有雨的博客-CSDN博客_maven resource
maven Filtering true 作用_滕青山YYDS的博客-CSDN博客
maven - 使用 Maven Profile 和 Filtering 打各种环境的包_个人文章 - SegmentFault 思否