IDEA不編譯src的java目錄下的xml文件問題及解決

IDEA的maven項目中,默認源代碼目錄下(src/main/java目錄)的xml等資源文件並不會在編譯的時候一塊打包進classes文件夾,而是直接捨棄掉。若是使用的是Eclipse,Eclipse的src目錄下的xml等資源文件在編譯的時候會自動打包進輸出到classes文件夾。java

示例:spring

當在IDEA中使用MyBatis時,通常會建立一個SQL映射的配置文件,這個文件若是是在src/main/java目錄下,編譯後在target目錄下是找不到這個文件的sql

圖片描述

對於IDEA的這個問題,有以下的解決辦法:springboot

第一種方法:若是沒有特殊業務,不須要指定資源文件定位到src/main/java下,則能夠在src下建立main/resources目錄,並將所須要的xml資源文件放置其中便可。maven工具默認在編譯的時候,會將resources文件夾中的資源文件一塊打包進classes目錄中。mybatis

圖片描述

對於MyBatis的這種使用方式,咱們必須在配置文件中指定mapper.xml文件的位置,例如在springboot項目中,在application.properties中增長:app

mybatis.mapper-locations=classpath:mapper/*.xml

若是是普通的ssm項目,則這樣配置:maven

<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="druidDataSource"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <!-- 配置mapper文件的位置 -->
    <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>

第二種方法:配置maven的pom文件配置,在pom文件中找到<build>節點,添加下列代碼:工具

<build>  
  <resources>  
    <!-- mapper.xml文件在java目錄下 -->
    <resource>  
      <directory>src/main/java</directory>  
        <includes>  
          <include>**/*.xml</include>  
        </includes>  
    </resource>  
    <!-- mapper.xml文件在resources目錄下-->
    <--<resource>
        <directory>src/main/resources</directory> 
    </resource>-->
  </resources>  
</build>
相關文章
相關標籤/搜索