IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法

出处: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” 按钮,重新加载下。

我就是这个原因搞了很久都没找到问题。

以上就是IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法的详细内容,更多关于IDEA 将xml编译进classes的资料请关注我们其它相关文章!

(0)

相关推荐

  • IDEA设置maven修改settings.xml配置文件无法加载仓库的解决方案

    出处:https://www.cnblogs.com/SunSpring 作为初学者配置maven一般网上搜索.然后你就看到各种配置文件片段,首先配置镜像,然后配置仓库.完事后再IDEA里面配置下maven的路径和配置文件路径. 这些文章属实坑爹,完全没讲一个重要的配置就是activeProfiles. 当我配置了各种,捣腾了半天,idea里面死活加载不进去我配置的仓库信息. 最后配置好activeProfiles就行了,这个基本99%的文章都没讲过要配置,自己不仔细去看文档就会掉入陷阱. ac

  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    IDEA Maven Mybatis generator 自动生成代码的实例讲解 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` varchar(100) NOT NULL, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT

  • IntelliJ IDEA创建maven多模块项目(图文教程)

    项目主要分成3个模块,wms-root为父模块,wms-core和wms-app(webapp类型的模块)为子模块. 一.Parent Project,创建wms-root父模块. 1.依次点击:File->New->Project 2.左侧面板选择maven(不要选择Create from archetype选项),如下图,点击Next即可. 3.依次补全如下信息,点击Next 4.输入项目名字.如ModuleProject,我们主要是在这个项目下创建我们的子模块. 5.这样我们就创建好了一

  • IDEA解决maven包冲突easypoi NoClassDefFoundError的问题

    在平常工作中我们经常会遇到maven引用的jar包冲突的事情,这时候我们就需要找出冲突的包,并将低版本或者缺少某些方法的jar给剔除掉.这个时候使用idea自带的maven依赖树就很好解决这样的问题. 包冲突显现出来的问题有:某些类找不到. 原因:工程中引入了一个需要的依赖,但工程中其他依赖的包内部也可能会有相同的依赖,如果版本不同maven可能取了一个低的版本,然后可能造成某个类找不到. 比如: 在工程中引入了easypoi jar,要使用Excel导出功能. <dependency> &l

  • 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: 接下来自定义GroupId以及ArtifactId,这里只是demo,所以随便命名了 然后自定义项目名,Finish: maven创建完毕 maven中,第一次创建会在src下生成main/java以及main/resources目录,src中的test目录是要自己创建的,test目录的中代码不会被

  • Intellij Idea 多模块Maven工程中模块之间无法相互引用问题

    一.问题背景 在Intellij idea中,新建Maven项目,在魔项目中新建多个模块,发现模块间相互调用失败 二.问题原因 模块间无法相互引用为IDEA的一个BUG 三.问题解决 1.点击项目右上角 [Project Struct](Mac快捷键: ⌘;) 2.选中modules->Dependencis-> + -> add Modules Dependency,选择你需要增加的依赖 3.如果 点击Apply无法确认,报错:删除source标签中已经有的依赖,点'x'即可删除 到此

  • idea新建maven项目没有src目录的操作方法

    方法一:设置idear的maven运行参数 或: 加:archetypeCatalog=internal 如果ctrl+alt+s进设置,只能对当前项目新建Module其作用: 方法二:在新建maven项目时候设置archetypeCatalog=internal,这种方式每次都需要设置,而且spring boot项目没这个设置,推荐第一种方法. 其他方法: 命令方式: mvn archetype:generate \ -DgroupId=com.mycom.helloworld \ -Dart

  • 如何在IDEA Maven项目中导入本地jar包的步骤

    1.打开侧面的maven,点击图中箭头指向的图标. 2.出现如下弹窗,在Command line在中输入执行的指令. 指令格式: install:install-file -Dfile=<Jar包的地址> -DgroupId=<Jar包的GroupId> -DartifactId=<Jar包的引用名称> -Dversion=<Jar包的版本> -Dpackaging=<Jar的打包方式> 如: mvn install:install-file -

  • 详解使用IntelliJ IDEA 配置Maven(入门)

    你是否正在学习Maven?是否因为Maven难用而又不得不用而苦恼?是否对Eclipse于Maven的冲突而困惑? 那么我告诉你一个更直接更简单的解决方案: IntelliJ IDEA! 1. 什么是 Maven,为什么要使用 Maven 而不是 Ant Maven简单来说是一个项目管理工具,被认为是Ant的替代品或者继任者.事实上Maven的功能要远远超出Ant,它不仅仅提供编译的脚本,更是在整 个项目周期中提供测试,发布,文档生成等功能,并且有着独特的依赖性管理方法.但是强大的功能的代价就是

  • idea重新下载已删除的maven依赖包操作

    由于依赖包更新,需要重新引入,但是删掉旧包之后重新构建却无法自动下载新包,即使是重启idea也不会自动下载. 其实重新下载的方法很简单,右键项目->maven->Reimport即可. 如下图: 补充:idea中maven的使用问题(配置,命令,idea中重新下载包) idea中自带的maven的路径:D:\Program Files\JetBrains\IntelliJ IDEA 2019.2.2\plugins\maven\lib\maven3 1.配置环境变量 变量名:MAVEN_HOM

  • 浅谈IDEA中Maven配置问题全解决

    最近换了工作环境,以前的IDEA配置都没了,记得上次配置自己的IDEA还是在两年前?然后构建Maven项目时遇到了一些小插曲,记录下解决方案(PS:新手教程向) 1. idea中maven默认配置的坑 首先打开File->Settings 这里可以直接搜索maven,就可以进入idea的Maven配置选项. 我这里是idea默认的maven配置,可以看到默认的Maven目录是idea内置的maven插件目录,同时Maven的配置文件在操作系统的User目录下. 理论上来讲idea的默认配置这样是

  • IDEA引MAVEN项目jar包依赖导入问题解决方法

    IDEA内置了Maven环境,默认采用Maven解决项目依赖问题.在新建项目后,项目的路径中会生成pom.xml文件和项目名.iml文件.新建项目后,IDEA不会自动刷新Maven的依赖.以Spring Application为例,新建项目编译时提示以下错误信息: 刷新Maven配置的方法为: (1)右键单击项目: (2)在弹出菜单中选择Maven|Reimport菜单项. 此时,IDEA将通过网络自动下载相关依赖,并存放在Maven的本地仓库中.另外,可以将Maven的刷新设置为自动,配置方法

  • IDEA怎么设置maven配置

    IDEA Maven配置 1. 下载maven 下载地址 从官网上,下载一个压缩包,然后解压到任意的文件夹 Maven的安装必须需要jdk1.7+ 2. 环境变量设置 M2_HOME改为具体的路径,其他的就直接复制就好 M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-3.2.5 M2=%M2_HOME%\bin MAVEN_OPTS=-Xms256m -Xmx512m Path目录下添加以下 %M2% 打开cmd,

随机推荐