zoukankan      html  css  js  c++  java
  • IDEA将Maven项目中指定文件夹下的xml等文件编译进classes

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

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

  • 相关阅读:
    为STARUML写的自动生成文档脚本 分类: 开发工具 2015-07-28 10:27 9人阅读 评论(0) 收藏
    StartUML自动生成代码 分类: 开发工具 2015-07-28 10:26 11人阅读 评论(0) 收藏
    使用无连接的数据报(UDP)进行通信 分类: Java 2015-07-27 20:59 13人阅读 评论(0) 收藏
    在线HTTP POST/GET接口测试工具
    完全卸载Oracle 11g
    Spring自动事物代理
    Spring的事物处理(转)
    如何写出高性能的SQL语句(转)
    JAVA读取xml(转)
    FineReport的使用
  • 原文地址:https://www.cnblogs.com/SunSpring/p/12923248.html
Copyright © 2011-2022 走看看