IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法
作者:XSpringSun 发布时间:2023-05-07 07:34:50
出处:https://www.cnblogs.com/SunSpring
eclipse下面创建的Maven项目,使用mybatis。eclipse里面能正常启动,在idea中一直卡在maybatis 加载位置。
1、首先是不报错也没反应。这个时候需要我们重写SqlSessionFactoryBean 让错误显示出来。
public class BeanFactory extends SqlSessionFactoryBean {
@Override
protected SqlSessionFactory buildSqlSessionFactory() throws IOException {
try {
return super.buildSqlSessionFactory();
} catch (NestedIOException e) {
e.printStackTrace();
throw new NestedIOException("Failed to parse mapping resource:", e.getCause());
}
}
}
2、修改applicationContext.xml 中的mybatis配置。
<bean id="sqlSessionFactory" class="com.util.BeanFactory">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
这样就能打印出mybatis加载过程的错误。
重新启动项目调试,报错提示找不到mybatis-config.xml 中配置的**mapper.xml文件。打开编译的target文件找到对应的mapper.xml目录发现果然没有xml文件,我们知道maven项目的标准项目结构如下:
(1)src/main/java:存放主代码
(2)src/main/resources:存放项目的资源文件,如:Spring 的核心配置文件
(3)src/test/java:存放测试代码
(4)src/test/resources:存放测试的资源文件
(5)target:目标文件输出位置,如:编译后的 .class 文件
(6)pom.xml:Maven 项目的核心配置文件
(7)src/main/webapp :它是 Web 项目的主目录,用于存放 .jsp、.js、.css 等文件
我们习惯把mybatis的mapper.xml文件Mapper.java放一起,都在src/main/java下面,这样maven打包时,如果没有设置为资源文件则maven不会打包,maven认为src/main/java只是java的源代码路径。可以看到idea里面Modules,只有src/test/resources是ResourceFolders。
解决办法:修改pom.xml,还有其他方法自己可以看下。
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
然后再重新编译项目就行了。
特别提醒:idea有时候修改了pom.xml文件没有重新加载,重新编译项目的时候还是不行。这个时候我们要再maven那里点击下“Reimport” 按钮,重新加载下。
我就是这个原因搞了很久都没找到问题。
来源:https://www.cnblogs.com/SunSpring/p/12923248.html


猜你喜欢
- 1. maven插件介绍springboot应用通过maven插件appassembler-maven-plugi生成启动脚本bat和sh。
- 关于Android 6.0Android老版本网络请求:1,HttpUrlConnection2,Apache Http ClientAnd
- 在Android开发中,我们经常遇到Android读取图片大小超过屏幕显示的图(一般只要显示一定规格的预览图即可),在图片特别多或者图片显示
- 问题 @Cacheable注解不支持配置过期时间,所有需要通过配置CacheManneg来配置默认的过期时间和针对每个类或者是方法进行缓存
- Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButto
- Struts2Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点
- Sentinel数据双向同步上面实现了Nacos单向同步配置规则到Sentinel,但是只是单向的,没有实现Sentinel向Nacos同步
- HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整
- 在实际的项目开发中会有很多的对象,如何高效、方便地管理对象,成为影响程序性能与可维护性的重要环节。Java 提供了集合框架来解决此类问题,线
- 前言初识Android PowerManagerService省电模式 让我们省电模式的概念有了初步的认识,Androi
- 如下所示:private void readImage(String filename) throws FileNotFound
- 咱们废话不多说进入主题、系统主页展示:用户登录后进行系统首页:主要功能模块如下、分角色管理、超级管理员拥有最高权限、可以进行菜单灵活控制、用
- 本文实例为大家分享了Spring Boot实现文件上传下载的具体代码,供大家参考,具体内容如下示例【Spring Boot 文件
- 以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片。现在大部分都是使用springboot,在使用sprin
- 最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流
- 前言《黄金矿工》游戏是一个经典的抓金子小游戏,它可以锻炼人的反应能力。。该游戏中,可以通过“挖矿”获
- c++智能指针介绍由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有
- 目录什么是Feign为什么使用Feign为什么要使用HTTP client为什么要使用Feign如何使用Feign项目环境说明引入依赖入门例
- 描述符描述符是你添加到那些定义中来改变他们的意思的关键词。Java 语言有很多描述符,包括以下这些:可访问描述符不可访问描述符应用描述符,你
- 最近比较空闲没有项目做,于是乎捋了捋平时工作会遇到的一些常见问题,首先想到了多用户登录限制问题,下面就对此问题做一点思考讲解。