控制台日志提示:
Error parsing Mapper XML.The XML location is XXX.xml
Cause: org.apache.ibatis.builder. BuilderException: Error resolving class.....
这种提示:一般是maven打包编译的问题
是全量和增量打包问题
全量打包 mvn clean package
增量打包 mvn package
出现这种提示,而且提示的xml文件在项目中也找不到,且在运行时报错,很有可能是这个xml文件名之前被创建了,后面又修改了这个文件名,导致资源文件打包后不一致.
解决办法:不要用增量打包,而改用全量打包方式
增量打包的方式是比较快的,如果只是修改这个xml文件的内容那是可以的,但如果修改了这个xml文件名则必须采用全量打包
后面再对比详解:
一句话记住:开发时图快用mvn package,发布时保纯净用mvn clean package。
最后提一点:为何不用idea中的maven插件打包编译,而用maven命令方式.因用命令更高效,特别是对于多服务多分层的情况,用bat文件来执行,更方便
如下 我常用的一个打包编译脚本 deploy.bat
@echo off rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-api" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-app" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-service" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-portal" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-gateway" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-schedule-web" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-web" rmdir /s /q "C:\maven3.9\myRepo\com\csair\meng-service" rem msg %username% "meng-schedule依赖清理成功!" echo meng-schedule本地依赖清理成功! cd C:\code\ideaPro\test03Temp\meng-schedule\meng-schedule\ call mvn install -T 2C -Dmaven.parallel=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -s C:\maven3.9\conf\settings_sample1.xml echo meng-schedule模块本地依赖安装成功! cd C:\code\ideaPro\test03Temp\meng-schedule\meng-service call mvn clean package -T 2C -Dmaven.parallel=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -s C:\maven3.9\conf\settings_sample1.xml cd C:\code\ideaPro\test03Temp\meng-schedule\meng-web call mvn clean package -T 2C -Dmaven.parallel=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -s C:\maven3.9\conf\settings_sample1.xml echo meng处理工作正确完成了运行吧 timeout /t 1000 /nobreak >nul exit