今天使用idea导入项目的时候出现了Xxx is not mapped 错误,但是在eclipse运行的时候又是正常的,后来发现编译后的target文件中没有使hiberante配置的xml文件,所以对pom.xml文件进行了修改。 原因:IDEA的maven项目中,默认源代码目录下(src/main/java目录)的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹。在使用maven进行模块开发时,会将配置文件xml放到dao层,idea打包时只会打包java文件,会将一些mapper映射文件或者properties文件给过滤掉,部署的时候会报找不到mapper配置文件等错误,解决方法是在pom文件中增加如下配置:

<build>
  <!--配置打包时不过滤非java文件开始  -->
  <!--说明,在进行模块化开发打jar包时,maven会将非java文件过滤掉,
  xml,properties配置文件等,但是这些文件又是必需的,
  使用此配置可以在打包时将不会过滤这些必需的配置文件。
  -->
  <resources>
  	<resource>
  	    <directory>src/main/java</directory>
  	    <includes>
  	        <include>**/*.properties</include>  
                <include>**/*.xml</include>  
  	    </includes>
  	    <filtering>false</filtering>
  	</resource>
  	<resource>  
            <directory>src/main/resources</directory>  
            <includes>  
                <include>**/*.properties</include>  
                <include>**/*.xml</include>  
            </includes>  
            <filtering>false</filtering>  
        </resource>  
  </resources>
  <!--配置打包时不过滤非java文件结束 -->
</build>

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐