1.检查xml的namespace是否和xml文件的package名称对应,以及方法名成参数类型和接口,返回类型是否一致。
2.检查xml中是否使用了type别名,如果用了别名,检查下别名包名是否配置正确,如果不确定,可以将实体类全包名加上去,还有就是看下实体类里面是否使用了typeHandler类型处理器,如果使用了,记得将完整包名加上去。
3检查mybatis-plus: mapper-locations: 配置的路径是否正确**
classpath和classpath的区别 classpath会扫把项目下其他模块路径下的文件,classpath只扫描当前模块。
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
如果检查以上之后还是报错
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
请检查编译后的文件target目录下相对应的目录下xml是否存在,如果不存在请在pom.xml中添加配置
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/java</directory>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
</resource>
</resources>
</build>
点击clean(删除target),complie(编译)后点击maven的运行。
如果还是不可以
可以查看下日志,一下就能查出来,如果没有出现如下日志,基本上就是你的packaging的问题:
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ admin ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 45 source files to D:\xxxx\admin\target\classe
删除pom.xml中的packaging标签
<packaging>war</packaging>
重新编译即可解决
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
最后一招
手动copy 把需要编译的文件拷贝到target所在位置就好了。(不推荐使用,后续打包等等可能会出现其他问题,没有办法的时候可以使用)
||||||||||||
**
知识点穿插 || pom.xml中packaging标签的使用
**
|||||||||||||
1. pom
在 父级项目中的pom.xml文件使用的packaging配置一定为pom。父级的pom文件只作项目的子模块的整合,不会编译生存.class,target包,在maven install时不会生成jar/war压缩包。
2. jar
Jar包是最为常见的打包方式,当pom文件中没有设置packaging参数时,默认使用jar方式打包。
这种打包方式意味着在maven build时会将这个项目中的所有java文件都进行编译形成.class文件,且按照原来的java文件层级结构放置,最终压缩为一个jar文件。
当我们使用mvn install命令的时候,能够发现在项目中与src文件夹同级新生成了一个target文件夹,这个文件夹内的classes文件夹即为刚才提到的编译后形成的文件夹
3. war
war包与jar包非常相似,同样是编译后的.class文件按层级结构形成文件树后打包形成的压缩包。不同的是,它会将项目中依赖的所有jar包都放在WEB-INF/lib这个文件夹下。