maven打包时, 资源文件没有被打包进来的问题

maven打包时, 资源文件没有被打包进来的问题,第1张

问题起因
我们系统使用Mybatis作为持久层框架,这里不详细描述Mybatis框架的使用方法,我们讲述三种加载mapper的方式总结:

  1. 加载普通的xml文件,传入xml的相对路径(相对于类路径)
  2. 使用mapper接口的全限定名来加载,若mapper接口采用注解方式,则不需要xml;若mapper接口没有采用注解方式,则mapper接口和xml文件的名称要相同,且在同一个目录
  3. 扫描指定包下的所有mapper,若mapper接口采用注解方式,则不需要xml;若mapper接口没有采用注解方式,则mapper接口和xml文件的名称要相同,且在同一目录。

使用第三种方式时,这样就会自动加载com.yogurt.mapper包下的所有mapper,这种方式需要将mapper接口文件和mapper.xml文件都放在com.yogurt.mapper包下,且接口文件和xml文件的文件名要一致注意,在IDEA的maven开发环境下,maven中还需配置标签,否则maven打包不会将java源码目录下的xml文件打包进去,怎么配置?请继续看下去。


    

此时会存在两种情况:

  1. 将mapper.xml文件配置在src/main/resources下
  2. 将mapper.xml文件配置在src/main/java目录下。注意,因为src/main/java被设定为了源码目录,默认只会将其中的Java文件进行编译打包。

问题出现

上述第二种方式,在调用接口报错如下

 解决方案

解决方案呢?当然有,手动将src/main/resources也添加到配置就可以了。按如下的pom.xml配置,maven打包时,既能包含src/main/java下的XML文件,也能包含资源目录(src/main/resources)下面的资源文件


    
            
                src/main/java
                
                    **/*.xml
                
            

            
                src/main/resources
                
                    **/*
                
            
        

看都看到这里了,给个赞吧~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/733809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存