Mybatis-Plus使用代码生成器自动生成代码报错 java.lang.NoClassDefFoundError: org/apache/velocity/context/Context(已解决)

Mybatis-Plus使用代码生成器自动生成代码报错: java.lang.NoClassDefFoundError: org/apache/velocity/context/Context(已解决)

背景:引入依赖

 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

创建CodeGet.java文件自动生成teacher表对应的增删改查代码

public class CodeGet {

    public static void main(String[] args) {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir("D:\\sgg\\ggkt_parent_new\\service\\service_vod"+"/src/main/java");
        gc.setServiceName("%sService");	//去掉Service接口的首字母I
        gc.setAuthor("atguigu");
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/glkt_vod");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("hsp");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        // com.atguigu.ggkt.vod.
        pc.setModuleName("vod"); //模块名
        pc.setParent("com.atguigu.ggkt");
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();

        strategy.setInclude("teacher");

        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略

        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

        mpg.setStrategy(strategy);

        // 6、执行
        mpg.execute();
    }
}

报错内容:
报错内容:
java.lang.NoClassDefFoundError: org/apache/velocity/context/Context

  • 解决

    1. 网上说是没有引入依赖代码生成器依赖导致的,检查无误

    2. 根据以往经验去依赖所在的文件夹中删除对应的依赖,重新引入,没有用

    3. 重启idea,没有用

    4. 最终解决方案:

    在maven控制台对应的文件,点击Lifecycle -> clean -> package
    在这里插入图片描述

  • 成功解决问题!!竟然反反复复折腾了2个小时才解决

在这里插入图片描述

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常是由于缺少 mybatis-generator-core 依赖包所引起的。请确保在您的项目中正确地添加了该依赖包,并且该包的版本与您所使用的 Mybatis 版本相匹配。如果这不是问题的根本原因,请检查您的代码以查找其他可能引起此错误的问题。 ### 回答2: java.lang.NoClassDefFoundError: org/mybatis/generator/config/ContextJava编程中的一个错误,它表示在运行时找不到类org.mybatis.generator.config.Context。 这个错误通常发生在使用MyBatis Generator生成代码时。MyBatis Generator是一个用于根据数据库表自动生成MyBatis持久层代码的工具。在生成代码之前,我们需要提供一个配置文件来指定代码生成的规则和目标。 通常情况下,出现java.lang.NoClassDefFoundError: org/mybatis/generator/config/Context错误的原因如下: 1. 没有正确地配置MyBatis Generator的classpath。在使用MyBatis Generator之前,我们需要确保相关的jar包都被正确地加入到编译和运行的classpath中。 2. 配置文件路径不正确。MyBatis Generator需要一个配置文件来指定生成代码的规则,如果配置文件路径不正确或配置文件中的路径配置不正确,就会导致无法找到org.mybatis.generator.config.Context类。 解决这个问题的方法如下: 1. 检查classpath配置。确认相关的jar包已经被正确地加入到项目的类路径中。 2. 检查配置文件路径。确认配置文件的路径配置正确无误,并且配置文件中的路径配置也正确无误。 3. 检查版本兼容性。确保使用的MyBatis Generator版本与项目中MyBatis和其他相关框架的版本兼容。不同版本之间可能存在一些不一致的地方,需要留意。 总结:java.lang.NoClassDefFoundError: org/mybatis/generator/config/Context是一个表示找不到类的错误。解决这个错误的方法包括检查classpath配置、配置文件路径以及版本兼容性等方面。 ### 回答3: 这个错误是由于在运行Java程序时找不到org.mybatis.generator.config.Context类引起的。NoClassDefFoundError是指在编译期间已经找到了类的定义,但是在运行时找不到该类的定义。 解决这个问题的方法有以下几种: 1. 确保相关的jar包已经正确地添加到项目的Classpath中。在使用MyBatis Generator时,需要将mybatis-generator-core.jar和相关的依赖库添加到项目的Classpath中。 2. 检查类名的拼写错误。如果在引用Context类时发生了拼写错误,也会导致找不到类的定义。 3. 检查项目的依赖关系。如果项目中存在多个模块或者子项目,需要确保所有的依赖关系配置正确,并且相关的jar包已经正确地添加到每个模块的Classpath中。 4. 确保所使用的MyBatis Generator版本与项目的其他依赖库版本兼容。如果使用的MyBatis Generator版本与其他依赖库版本不兼容,也会导致找不到类的定义。 5. 确保Context类存在于所引用的jar包中,并且jar包的版本与项目的其他依赖库版本兼容。可以使用Java反编译工具查看所引用的jar包中是否存在Context类的定义。 总之,NoClassDefFoundError错误是由于找不到类的定义引起的,需要仔细检查项目的配置、依赖关系以及jar包的引用等方面,找到错误的原因并加以解决

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值