錯誤日志:
1 Exception in thread "main" java.lang.NoClassDefFoundError: org/mybatis/generator/api/dom/xml/Element 2 at java.lang.Class.forName0(Native Method) 3 at java.lang.Class.forName(Class.java:348) 4 at org.mybatis.generator.internal.ObjectFactory.internalClassForName(ObjectFactory.java:144) 5 at org.mybatis.generator.internal.ObjectFactory.createInternalObject(ObjectFactory.java:180) 6 at org.mybatis.generator.internal.ObjectFactory.createCommentGenerator(ObjectFactory.java:241) 7 at org.mybatis.generator.config.Context.getCommentGenerator(Context.java:266) 8 at org.mybatis.generator.codegen.mybatis3.model.SimpleModelGenerator.getCompilationUnits(SimpleModelGenerator.java:51) 9 at org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl.getGeneratedJavaFiles(IntrospectedTableMyBatis3Impl.java:181) 10 at org.mybatis.generator.config.Context.generateFiles(Context.java:460) 11 at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:262) 12 at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:132) 13 at com.weChat.MybatisStartup.GeneratorDisplay.generator(GeneratorDisplay.java:33) 14 at com.weChat.MybatisStartup.GeneratorDisplay.main(GeneratorDisplay.java:17) 15 Caused by: java.lang.ClassNotFoundException: org.mybatis.generator.api.dom.xml.Element 16 at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 17 at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 18 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 19 at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 20 ... 13 more 21
原因及其解決辦法:
- 錯誤日志中很明顯的說是 mybatis 的代碼自動生成依賴 generator 的 api 存在問題,查看 pom.xml 文件的依賴,發現引用是正常的,也就是說引用和使用都不可能有問題,因為我並沒有直接操作 generator 的 api ,那么只可能是版本的問題了,而我的這個依賴的版本是 1.4.0 ,是目前最高的版本:
所以只有可能是我的版本太高了,下降一個版本試試,換成1.3.7的果然就好了!看來做這個不能寫的太滿,不然很容易給自己埋雷啊!