您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发

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

不忘初心 不忘初心 2020-10-09 围观() 评论() 点赞() JAVA开发

简介:在上一篇文章中,给大家讲述了我是如何解决mybatis-generator不生成字段注释的问题,在我一开始尝试的时候,还碰见了一个小问题:“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”,在这里给它记录下来。

在上一篇文章中,给大家讲述了我是如何解决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();
}
}
}

mybatismybatis-generator

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们