当前位置: 首页 > 编程笔记 >

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

倪灿
2023-03-14
本文向大家介绍IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法,包括了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的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 本文向大家介绍Python获取指定文件夹下的文件名的方法,包括了Python获取指定文件夹下的文件名的方法的使用技巧和注意事项,需要的朋友参考一下 本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名。 一、os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件。 该函数可以得到一个三元tupple(dirpath, dirnames, fil

  • 问题内容: IntelliJ IDEA中Java项目可接受的文件夹结构是什么? 多个来源建议采用以下结构: 我知道这以前曾经奏效,但现在却在抱怨 显然],不允许将其作为程序包名称。我不明白为什么有时可以接受,有时不能接受。有人可以在IntelliJ IDEA中的Java项目中提供可接受的项目文件夹结构的完整示例吗? 问题答案: 这是Maven项目的基本文件夹结构。IntelliJ通常会识别出此情况

  • 我知道这种方法以前起过作用,但现在它正在抱怨 显然,不允许作为包名。我不明白为什么有时可以接受,有时不能接受。有人能在IntelliJ IDEA中提供一个Java项目中可接受的项目文件夹结构的完整示例吗?

  • 任何帮助都将非常感谢!

  • 作为Maven的新手,我试图用Maven和maven-shade-plugin编译一个项目(因为它似乎是构建一个胖罐子的最佳插件)。我试图指定我的主类来创建一个可运行的jar文件和一些。包含翻译字符串的属性文件。 根据netbean的输出,编译和构建似乎通过了,但我无法按以下方式运行它(假设Maven构建的jar更名为“程序”): 这是我的项目文件结构: 这是我的pom.xml文件: 资源是否正确

  • 问题内容: 我只想编译源目录中的选定文件或目录(包括子目录)。我非常确定可以使用of 的配置来完成此操作,但是由于它仍将所有类都编译为,因此它似乎并没有达到我的预期。真正奇怪的是,Maven的输出表明该设置实际上已完成其工作,原因是: 我有: 但没有编译器的配置,我有: 但是在这两种情况下,所有14个类都被编译为我提到的那样。您能解释一下还是建议另一种仅编译选定文件的解决方案? 问题答案: 3类简