mybatis-plus配置代码生成工具报错:java.lang.NoSuchFieldError: GAUSS

问题描述:

为了方便开发,今天在配置mybatis-plus的代码生成工具的时候,按照官网的使用教程引入以下jar包:

 <dependency>
     <groupId>com.zns</groupId>
     <artifactId>mybatis-plus-generator</artifactId>
     <version>3.3.2</version>
 </dependency>

然后使用官网的代码按照自己的需求进行修改后:

@Test
    public void testGenerator() {
        GlobalConfig config = new GlobalConfig();
        config.setActiveRecord(true)
                .setAuthor("PH")
                .setOutputDir("F:\\ideaProject\\einvoice\\src\\main\\java")  //生成路径
                .setFileOverride(false)//是否文件覆盖,如果多次
                .setServiceName("%sService") //设置生成的service接口名首字母是否为I
                .setIdType(IdType.AUTO) //主键策略
                .setBaseResultMap(true)
                .setBaseColumnList(true)
                .setDateType(DateType.ONLY_DATE);
        DataSourceConfig dsConfig = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)
                .setUrl("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false")
                .setDriverName("com.mysql.cj.jdbc.Driver")
                .setUsername("root")
                .setPassword("root");
        StrategyConfig stConfig = new StrategyConfig();
        stConfig.setCapitalMode(true) // 全局大写命名
                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                .setInclude("t_test") //生成的表
                .setEntityLombokModel(true)
                .setEntityTableFieldAnnotationEnable(true);
        PackageConfig pkConfig = new PackageConfig();
        pkConfig.setParent("com.datanew.xxx")//父包名
                .setController("controller")
                .setEntity("beans")
                .setService("service")
                .setMapper("mapper");
        //5.整合配置
        AutoGenerator ag = new AutoGenerator().setGlobalConfig(config)
                .setDataSource(dsConfig)
                .setStrategy(stConfig)
                .setPackageInfo(pkConfig);
        ag.execute();
    }

启动代码生成测试类报错:
java.lang.NoSuchFieldError: GAUSS
在这里插入图片描述

原因分析:

从execute方法进去打断点,控制台显示如下:
在这里插入图片描述
显示参数其中两个"java.lang.NoSuchFieldError",所以一开始觉得是配置有问题,检查过后是按照官网的形式来写的,所以配置出问题的可能性不大;因为之前做过其他测试时是正常的,只有在引入上面的jar包后才出了这个问题,所以立马去查看了pom依赖图:
在这里插入图片描述
果然找到这个jar包和 mybatis-plus 都包含 mybatis-plus-extension 这个包,因为mybatis-plus包版本是3.3.1,然后这里引入的generator jar包是3.3.2版本,所以jar包版本冲突(确切的说是重复,方法执行时不知道去引用哪一个,所以报java.lang.NoSuchFieldError)

解决方案:

将generator jar包版本改为3.3.1(和mybatis-plus版本一致)

后记:

因为是第一次记录,一个小问题,说的比较啰嗦,我觉得重要的事情有两点:1.解决问题的思路,不能盲目无措 2.问题大小都记录下来,就有助于培养这样的思维。
谨记,共勉!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值