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

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

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

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

<mappers>
    <package name="com.yogurt.mapper"/>
</mappers>

此时会存在两种情况:

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

问题出现

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

image-20200527205657457

 解决方案

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

<build>
    <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
</build>

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

回答: Maven默认会将源目录下的源文件进行打包。然而,如果在pom.xml中配置了resources标签,则默认的打包策略就会被覆盖,只会打包resources标签中配置的源文件。所以,如果在pom.xml中配置了resources标签,只有该标签中配置的源文件会被打包。\[1\] 关于你提到的问题maven打包是否会打包resources,根据你的描述,可能存在一些问题。有候,可能会出现maven打包没有resources文件夹下的文件打包进来的情况。这可能与maven的版本、插件版本或其他配置有关。\[2\]如果你遇到了类似的问题,可以检查一下你的maven配置,确保resources文件夹下的文件被正确地包含在打包中。同,你也可以查看maven的日志信息,以了解更多关于打包失败的具体原因。\[3\] #### 引用[.reference_title] - *1* *2* [关于maven打包, 源文件没有打包进来问题](https://blog.csdn.net/vcj1009784814/article/details/115118255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [maven打包错误: Failed to execute goal org.apache.maven.pluginsmaven-resources-plugin3.2.0resources](https://blog.csdn.net/zhiyikeji/article/details/126237074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颓了呀

收到你温暖的礼物,超开心,感激

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值