首页   >   代码编程   >   JAVA开发

generate failed: Cannot instantiate object of type com.wolffy.jwcz.plugin.MyCommentGenerator

在上一篇文章中,给大家讲述了我是如何解决mybatis-generator不生成字段注释的问题,在我一开始尝试的时候,还碰见了一个小问题:“generate failed: Cannot instantiate object of type com.wolffy.jwcz.plugin.MyCommentGenerator”,在这里给它记录下来。

generate failed: Cannot instantiate object of type com.wolffy.jwcz.plugin.MyCommentGenerator

手抖,错误信息没复制全,只有这一点儿了,大家将就着看一下。

Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate (default-cli) on project dao: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object of type com.wolffy.jwcz.plugin.MyCommentGenerator

错误提示信息很清晰,就是说找不到我们自定义的那个CommentGenerator类,但是我确确实实有这个类,而且我保证路径没有写错。

<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<configurationFile>
${basedir}/src/main/resources/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
</dependencies>
</plugin>
</plugins>

上面是我在maven中集成mybatis-generator插件的代码,直接运行就会报上面那个错,而在那个generatorConfig.xml文件中,也确实引入了正确的plugin路径。

<!-- 使用自定义的插件 -->
<commentGenerator type="com.wolffy.jwcz.dao.plugin.MyCommentGenerator">
</commentGenerator>

PS: MyCommentGenerator.javageneratorConfig.xml文件,在文章开头引入的文章中有,这里不再重复写了。

折腾了一番之后,发现只要是使用maven插件方式来运行mybatis-generator,而不是在自己的java代码中运行的,就会导致这个错误,在网上查了一下资料,出现这个问题的原因是:mybatis-generator 的plugin有自己的classpath,我们在项目中直接继承的类和plugin不属于同一个classpath

Soga,不在同一个classpath之下,那我们就不能寄希望于mave了,只能老老实实自己写代码执行喽!!!

package com.wolffy.jwcz.dao;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
/**
* 快速生成mybatis配置文件
* Created by SongFei on 2020/09/21.
*/

public class MybatisGenerator {
public static void main(String[] args) {
MybatisGenerator generator = new MybatisGenerator();
System.out.println(System.getProperty("user.dir"));
System.out.println(generator.getClass().getResource("/").getPath());
generator.run();
}
public void run() {
try {
InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("generatorConfig.xml");
List<String> warnings = new ArrayList<>();
ConfigurationParser parser = new ConfigurationParser(warnings);
Configuration config = parser.parseConfiguration(resourceAsStream);
DefaultShellCallback callback = new DefaultShellCallback(true);
MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings);
generator.generate(null);
for (String warning : warnings) {
System.err.println(">" + warning);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
雨落无影

QQ群Ⅰ: 686430774 (已满)

QQ群Ⅱ: 718410762

QQ群Ⅲ: 638620451 (已满)

QQ群Ⅳ: 474195684

QQ群Ⅴ: 463034360 (已满)

QQ群Ⅵ: 879266502

QQ群Ⅶ: 627786015 (已满)

工作5分钟,吹逼2小时: 855525339 (娱乐消遣,广告狗勿进)

如果文章有帮到你,可以考虑请博主喝杯咖啡!

分享到:

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2020-10-09

永久地址:https://www.jiweichengzhu.com/article/21191162b4e04e9794c3e7574d56f673

评论