今天在開發過程中,對一個mapper.xml文件的sql進行了改動,重啟tomcat后發現沒有生效,首先考慮是不是遠程服務開啟着,導致代碼沒有走本地,確認遠程服務是關閉的,的確是本地修改沒有生效,於是我clean了當前mapper所在的包,重啟tomcat,直接報錯:
xxx is not known to the MapperRegistry
一臉懵....,於是我趕忙檢查了mapper文件的namespace以及MapperScannerConfigurer的配置,發現均是正確的,一時間束手無策。
最終解決辦法:1.clean root工程 2.package root工程。
浪費了一上午時間,甚是難受。總結原因還是對maven一些命令不夠熟悉。
maven命令總結
- clean:清除maven項目下的target目錄中的class和本地倉庫中已打包的文件。
- validate:驗證工程是否正確,所有需要的資源是否可用。
- compile:即編譯項目中的java文件,並存放在項目的編譯目錄。
- test: 即運行項目中的測試用例文件,如果測試用例未通過,也會打包失敗,另,這里的test過程可以在pom中通過配置跳過。
- package:將本地編譯好的文件打包為war 或者jar。
- verify: 運行任何檢查,驗證包是否有效且達到質量標准。
- install:將打包的代碼存放到本地maven倉庫,可供本地其它項目依賴使用。
- site:生成項目報告,站點,發布站點。
- deploy:將打包在本地倉庫中的項目發布到服務器,供他人依賴使用。