1. 程式人生 > >解決maven打包時漏掉src/main/java資源裡的xml的問題

解決maven打包時漏掉src/main/java資源裡的xml的問題

在整合Spring + Mybatis框架的時候,自動掃描配置都已經配置好了。
配置如下:

<context:component-scan base-package="com.yd"/>

<!-- 引入資料庫屬性檔案 -->
<context:property-placeholder ignore-unresolvable="true" location="classpath:config.properties" />

<!-- spring和MyBatis完美整合,不需要mybatis的配置對映檔案 -->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:/com/yd/pushcloud/dao/*.xml"/> </bean> <!-- DAO介面所在包名,Spring會自動查詢其下的類 ,包下的類需要使用@MapperScan註解,否則容器注入會失敗 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
>
<property name="basePackage" value="com.yd.pushcloud.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>

但是在maven install的時候會報錯:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.aheizi.dao.UserMapper
...

顯示繫結錯誤,分析可知應該是在UserMapper介面和SQL的隱射檔案沒有結合。
第一時間檢查了mapper的namespace屬性,確認沒有錯。
後來查看了target/classes/../mapping並不存在,也就是說mapper.xml檔案並沒有在編譯的時候放進classes中。
這就尷尬了,一開始我以為是我eclipse編譯有問題,於是每次編譯的時候,我都先maven clean一下,然後選擇eclipse的project的clean一下我的專案,讓他重新編譯,最後在maven install一下,xml檔案才會編譯進去,但是如果eclipse的clean時間太短也會導致xml沒編譯進去,這讓我十分苦惱。
後來通過檢視maven打包機制,才發現maven預設只把src/main/resources路徑下的資原始檔打包,src/main/java目錄下只編譯Java檔案,問題就迎刃而解了。
解決辦法有兩種:
1.在pom.xml下的build節點下加入以下配置

<!-- 填補maven打包的坑,使maven編譯時包含mybatis的sql對映xml檔案 -->
<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

意思就是把src/main/java目錄也加入要打包的資源路徑。

2.把mybatis的sqlmapping配置檔案放到src/main/resources目錄下,但是這樣會顯得很醜。
建議使用第一種方法!

相關推薦

解決maven打包漏掉src/main/java資源xml的問題

在整合Spring + Mybatis框架的時候,自動掃描配置都已經配置好了。 配置如下: <context:component-scan base-package="com.yd"/> <!-- 引入資料庫屬性檔案 --> &

maven打包war漏掉src/main/java下的xml等資原始檔解決方式

給前端同學寫了個簡單的介面,給他打了個war包,滿以為簡單的事情,卻總是訪問不成功,後來檢視日誌,發現無法找到mybatis的xml檔案,查看了一下war,果然沒有把mybatis檔案打包進去,百度了一下,發現是pom.xml配置少了打包src/main/java的資原始

maven 打包src/main/java目錄下的xml等資原始檔沒有打包進去的問題

工作中,給同事除錯maven的自動化打包時,發現src/main/java中一些關於mybatis的xml都沒有打包進去,導致war包啟動不起來,在此記錄一下,解決方法。 預設maven在src/main/java中只編譯java檔案,其他的檔案會被忽略,但可以通過配置po

Idea建立的maven專案編譯漏掉src/main/java下的xml配置檔案

報錯資訊: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 解決方案: 第一種:在pom.xml中新增如下程式碼: <resources>

Java maven項目編譯漏掉src/main/java下的xml配置文件

XML 但是 maven項目 filter resources direct pri bsp 配置文件 Java maven項目編譯漏掉src/main/java下的xml配置文件 在整合Spring + Mybatis框架的時候,自動掃描配置都已經配置好了。 但是xm

新建maven專案後,沒有src/main/javasrc/test/java目錄的解決方法

網上找了挺多的方法的,自己覺得這個方法最簡單便捷 新建Maven專案後,沒有出現本應該有的src/main/java和src/test/java目錄(是不是eclips建立maven專案都是這樣?) 選中專案,右鍵點選Properties,選中Java Build P

解決Eclipse建立Maven專案後無src/main/java資原始檔夾的辦法

建立好一個Maven專案後,如果Java Resources資原始檔下沒有src/main/java資料夾,並且在手動建立這個檔案時提示“已存在檔案”。這說明,在這個專案配置中已經有了src/main/java這個資料夾。 解決方法: 在專案上右鍵選擇pro

maven web工程缺少 src/main/javasrc/test/java 資源文件夾的方法

ava body figure pos web工程 點擊 build 技術分享 maven 右鍵打開:build path -> configure build path... 在彈出的界面,選擇: 編輯後: 點擊finish,即可完成 maven we

新建maven專案沒有出現src/main/javasrc/test/java目錄的解決方法

新建Maven專案建成後本應該有的src/main/java和src/test/java目錄並沒有出現:                           發現

maven 搭新建成之後 無法創建 src/main/java 目錄解決

sin 報錯 miss nbsp maven項目 項目創建 選中 打開 http maven項目創建後 創建 src/main/java 和 src/main/test 會報錯,目錄已存在 打開build path 界面 src/main/jav

Maven打包出現“Show Console View”錯誤彈出框,錯誤詳情為“An internal error has occurred. java.lang.NullPointerException”的解決方法

開開 exceptio 技術 point org ali ava src cor 今天為項目打包時出現了下面的錯誤提示: 打開Details裏面寫的是“An internal error has occurred. java.lang.NullPointerExcepti

MAVEN打包沒有將src/main/cache資料夾打到到WAR包中

某專案中ehcache配置檔案寫在src/main/cache中,結果用maven打包時,得到的WAR包裡面沒有這個資料夾 因為maven打包時預設只打包src/main/java中的檔案和src/main/resources中的檔案,如果要將src/main/cache資

Java ee建立Maven專案,路徑下沒有src/main/java等路徑,只有src/main/resource

最近建立新Maven專案時發現有時候路徑下只有src/main/resource的路徑,缺失了重要的src/main/java 就像這樣,雖然自己可以再新建資料夾改名,但總感覺這樣不太好 網上查詢資料發現有兩種方法,第二種是後來發現的一步操作更簡單 先說第一種方法 1.右鍵單擊

maven打包出現【java source 1.3中不支援泛型 請使用 -source 5 或更高版本以啟用泛型】錯誤解決方法

出現【java source 1.3中不支援泛型 請使用 -source 5 或更高版本以啟用泛型】問題的原因是因為jdk版本使用不對,maven編譯打包時找到的是低版本的jdk,可以在總pom中新增以下語句顯示指明使用版本為1.6的jdk即可解決這個問題 <buil

maven build src/main/java目錄下的xml等資原始檔不被打包

解決方法: pom.xml設定resource <resources> <resource> <directory>src/main/resources</directory> <includes

如何解決maven搭建專案的時候,src/main/java無法建立的問題,提示資訊The folder is already a source folder.

原因:maven自己引的jdk包不對,需要重新引包 操作方式: 1、在專案上右擊(或用快捷鍵ALT+ENTER),開啟properties-->java builder path-->remove掉原來的jdk包,引入自己安裝的jdk包即可

maven工程src/main/java目錄無法創建問題

知識庫 word tle prop works lan rep lac title 在項目上右鍵選擇properties,然後點擊Java build path,在Librarys下,編輯JRE System Library,選擇 workspace default jre

新建Maven項目建成後本應該有的src/main/javasrc/test/java目錄並沒有出現:

原本 pat alter rar 分享圖片 execution tps 新建 eclips 轉自:http://www.cnblogs.com/dong-dong-dong/p/9565466.html 新建Maven項目建成後本應該有的src/main/java和src/

安裝了JDK1.8後,配置了環境變數,但是Maven打包,依然讀取的是JDK1.6的問題解決辦法

     問題描述:使用maven對springboot打包時,報瞭如下錯誤,      錯誤描述:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compil

Maven打包提示No runnable methods的解決方案

我的一個spring專案,在使用 mvn package 命令打包的時候,出現下列錯誤: 但是在IDE中執行單元測試的時候,是全部都能通過的。經過排查,發現問題出在主函式的測試類上。 在我的專案中,主函式的測試類用來配置spring測試環境,其餘的測試類繼承這個類來執