版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IsITMan/article/details/80363597
这个问题困扰了很久,国内好多关于generator集成的文章都忽略了这个错误,国外的论坛讨论过这个问题,思路似乎很正确,但我无法get到的操作,http://mybatis-user.963551.n3.nabble.com/mybatis-generator-Root-class-xxx-cannot-be-loaded-td3576094.html 无意间翻阅mybatis-generator配置参数说明时看到 classPathEntry属性恍然大悟。
具体操作如下:
cmd命令下进入到项目pom.xml跟路径中 输入命令行:mvn clean install(将项目打成jar包),
将<classPathEntry location="本地路径/项目名.jar" /> 配置到mybatis-generator.xml中,如下图:
<!-- 在MBG工作的时候,需要额外加载的依赖包location属性指明加载jar/zip包的全路径-->
<classPathEntry location="本地路径/项目名.jar" />
<classPathEntry> 元素说明:http://mbg.cndocs.ml/configreference/classPathEntry.html
更详细的说明如下图:
重点看这里:
上面这么做有些弊端,就是耦合度有些高,其实我们可以在maven插件中管理这个jar,插件代码如下:
<build> <plugins> <!--要打包了这个生成代码要禁止掉,本地开发开启 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <dependencies> <!--配置这个依赖主要是为了等下在配置mybatis-generator.xml的时候可以不用配置classPathEntry这样的一个属性,避免代码的耦合度太高 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency> <dependency> <groupId>com.liveneo.sgplatform</groupId> <artifactId>sg-generator</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/sg-generator-1.0.0.jar</systemPath> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-generator</artifactId> <version>1.0.0</version> </dependency> </dependencies> <configuration> <!--允许移动生成的文件 --> <verbose>true</verbose> <!-- 是否覆盖 --> <overwrite>true</overwrite> <!-- 自动生成的配置 --> <configurationFile>src/main/resources/generator/mybatis-generator.xml</configurationFile> </configuration> </plugin> </plugins> </build>
综上已把解决方案给出,如有问题请留言。