Maven 打包项目时mapper,xml文件不被打包

Maven 项目中使用 Mybatis 框架 ,如果运行项目时报如下错:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

原因是构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。
Maven打包时,默认java目录下只将.java编译并将编译后的class文件打包,而mapper接口与mapper映射文件放在同一目录下时,mapper映射文件未被打包 。

以下几种方法都可以解决该问题。

1.build节点下添加 resources节点

 <!--xml文件打包-->
        <resources>
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>

2.如使用build-

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SSM+Mysql实现的CRM信息管理系统源码+数据库+项目说明.zip # SSM项目实战:Crm信息管理系统 ## 1. 系统的功能和简介 * 一个数据管理系统,基于SSM框架进行开发,利用Maven构建和打包。 + 有登录模块。 + 对数据的管理功能(CRUD)。 + 分页的显示。 * > 本项目源于TyCoding开源项目 [SSM](https://github.com/TyCoding/ssm)。 > > 项目中的所有实现我都通过自己学习后进行编写。 * #### 改进地方: + 改进了分页的bug。 + 添加了拦截器进行权限认证。 + 添加了数据响应页面倒计回主页。 + 添加了显示用户名。 * #### 适用人群: + 用于熟悉SSM框架的开发人员。 + 学习数据的分页。 ## 2. 系统的环境搭建 * 本系统通过Maven来进行环境的搭建,Maven的依赖,我已经打包好了,在根目录的tree.txt目录下,也可以通过pom文件来进行查看。 * 文件的目录如下: <img src="/img/src.png" > * main项目下是项目的主要实现代码,resources用于存放配置的xml。 * test目录是用于存放测试的Java代码,本例中主要用于测试mapper和service编写是否正确。 * mysql文件已经放在目录下。 * 本系统的搭建环境: * Java:1.8.0.191 * mysql:8.0.13 * Maven:3.6.0 * Spring:4.2.4 * Mybatis:3.2.8 ## 3.注意事项 * 注意mysql连接驱动和mysql的版本,当初我在搭建的候因为我的Mysql和原作者的Mysql版本不一致,一直无法连接到数据库,抛了异常解决了很久。 * 注意mysql8.0之后jdbc的驱动修改了,在url中需要配置区: * ```mysql jdbc.driver=com.mysql.cj.jdbc.Driverjdbc. url=jdbc:mysql://localhost:3306/mycrm? characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false jdbc.user=root jdbc.password=root ``` * 要注意通过Maven搭建项目候要注意包冲突。 ## 4.项目展示 * 首页:username为admin,密码为admin。 * <img src="/img/首页.png" /> * 主页: * <img src="/img/主页.png" /> * 添加: * <img src="/img/添加.png" /> ## 5.jsp页面说明 * 前端页面: * <img src="/img/前端页面.png" /> * index为主页,info用于跳转信息页面,list为页面信息显示,save为添加用户的页面,page为导航栏。 * ## 6.分页功能 * 在以前的候,我们通常是怎么分页的呢? * 首先通过mysql的limit来进行分页 ```mysql select * from A limit 1,10; ``` * limit表示从第几条到第几条。 * 同我们需要在前端传入,第几页,一页显示多少条。 * 然后我们通过计算: * ```Java 通过前端传入的条数,我们需要先对数据库所有符合条件的数据进行查找,除以条数,得出总页数。 然后我们通过传入的(页数-1)*条数得出数据是从第几条开始到第几条结束。 再通过一个对象封装起来,传入前端。 ``` * 使用了PageHelper之后,我们就不需要再如此繁琐的进行分页了。 * ```Java 使用PageHelper.startPage(第几页,每页显示多少条);就可以在这段代码之后的下一个查询的数据就会自动分页。 ``` * 同样PageHeler里面有一个PageInfo的类可以对数据进行封装,封装的内容和程序中用于封装的p
【资源说明】 1、基于SpringBoot的图书馆管理系统项目源码+数据库+项目说明(课程设计).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 # 一、项目介绍 + 项目名称:图书馆管理系统(Web) + maven依赖:<br> org.springframework.boot<br>     spring-boot-starter-data-mongodb<br>     spring-boot-starter-data-redis<br>     spring-boot-starter-mail<br>     spring-boot-starter-thymeleaf<br>     spring-boot-starter-web<br>     spring-boot-starter-test<br> org.mybatis.spring.boot<br>     mybatis-spring-boot-starter<br> mysql:<br>     mysql-connector-java<br> org.projectlombok:<br>     lombok<br> com.alibaba:<br>     druid-spring-boot-starter<br> + plugin插件: org.mybatis.generator:<br>     mybatis-generator-maven-plugin<br> 其他默认插件 + 打包方式:jar/war + 目录结构:<br> --main:代码<br>   | comtroller:控制器层<br>     | user:用户端控制器<br>     | administrator:管理员端控制器<br>     | main:公共页面控制器<br>   | dao:数据库永久dao接口层<br>     | mysql:mysql端数据库接口<br>     | redis:redis端数据库接口<br>     | mongo:MongoDB端数据库接口<br>   | domain:实体类层<br>   | enums:枚举类<br>   | filter:过滤器层<br>     | conf:过滤器层配置类<br>   | service:服务层<br>     | impls:实现类<br>     | interfaces:接口类<br>   | transactor:拦截器层<br>     | conf:拦截器层配置类<br>   | tools:工具类<br>   | exceptions:自定义异常类<br> --resources:资源文件(所有的xml等类型的配置文件放在这里)<br>   | mapper:数据库SQL语句mapper文件<br>   | static:静态文件<br>     | css:css文件<br>     | js:JavaScript文件<br>     | images:图片文件<br>  &em
您好!如果您想使用 Mavenmaven-assembly-plugin 插件来打包 Mapper,您可以按照以下步骤进行操作: 1. 首先,在您的 Maven 项目的 pom.xml 文件中,确保已经添加了 maven-assembly-plugin 插件的配置。示例如下: ```xml <build> <plugins> <!-- 其他插件配置... --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <!-- 插件的配置参数 --> <!-- 您可以根据您的需求进行配置 --> </configuration> <executions> <execution> <id>assemble</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 2. 接下来,您需要在 pom.xml 文件中添加相关的依赖项。请确保您已经添加了与 Mapper 相关的依赖项,例如 MyBatis 或其他 ORM 框架。 3. 在配置 maven-assembly-plugin 插件,您可以使用 `<configuration>` 标签来指定如何打包 Mapper。以下是一个示例配置,假设您的 Mapper 文件位于 `src/main/resources/mapper` 目录下: ```xml <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> <appendAssemblyId>false</appendAssemblyId> <finalName>my-project</finalName> <descriptors> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> <outputDirectory>${project.build.directory}/assembly</outputDirectory> </configuration> ``` 请注意,上述示例中的 `assembly.xml` 是一个自定义的 XML 文件,用于指定要打包的文件和目录。您可以根据自己的需求进行配置。 4. 创建一个名为 `assembly.xml` 的 XML 文件,并将其放置在 `src/main/assembly` 目录下。在该文件中,您可以使用 `<fileSets>` 或其他相关标签来指定要打包Mapper 文件或目录。以下是一个示例配置: ```xml <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.2 http://maven.apache.org/xsd/assembly-2.1.2.xsd"> <id>assembly</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.outputDirectory}</directory> <outputDirectory>/</outputDirectory> </fileSet> <!-- 其他 fileSet 配置... --> </fileSets> </assembly> ``` 请注意,上述示例中的 `<directory>` 标签指定了 Mapper 文件所在的目录,`<outputDirectory>` 标签指定了打包后的存放位置。 5. 最后,在命令行中执行以下 Maven 命令来进行打包: ``` mvn clean package ``` 这将触发 maven-assembly-plugin 插件的执行,并生成包含 Mapper打包文件。 希望能对您有所帮助!如有任何疑问,请随提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值