用 jar -jar 启动就没问题,用 Idea 启用就会有以下报错 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
imyasON
V2EX    程序员

用 jar -jar 启动就没问题,用 Idea 启用就会有以下报错

  •  
  •   imyasON 2024-01-24 10:34:27 +08:00 2869 次点击
    这是一个创建于 628 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Caused by: java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseDeleteProvider.<init>()

    nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis.mapper.provider.base.BaseDeleteProvider.dynamicSQL). Cause: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseDeleteProvider

    百度上让我在启动类 @MapperScan 的包从 import org.mybatis.spring.annotation.MapperScan; 改为 import tk.mybatis.spring.annotation.MapperScan;
    但是我的的版本就没有这个文件 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency>

    21 条回复    2024-01-24 19:22:31 +08:00
    Goooooos
        1
    Goooooos  
       2024-01-24 10:53:34 +08:00
    一般是依赖问题,classpath 存储两个不同版本的包,且两个包都有相同的类,可以试试 maven-enforcer-plugin 检查是否有冲突的依赖
    https://www.mojohaus.org/extra-enforcer-rules/banDuplicateClasses.html
    ebony0319
        2
    ebony0319  
       2024-01-24 10:59:51 +08:00
    ```java
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
    </dependency>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>4.2.3</version>
    </dependency>
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter-test</artifactId>
    <version>3.0.3</version>
    <scope>test</scope>
    </dependency>

    ```

    ```java
    import tk.mybatis.spring.annotation.MapperScan;



    @MapperScan(basePackages = "com.xxx.mapper")
    @SpringBootApplication
    public class Application {

    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }
    ```

    ```java

    import org.apache.ibatis.annotations.Mapper;
    import tk.mybatis.mapper.common.BaseMapper;

    @Mapper
    public interface xxxMapper extends BaseMapper<xxx> {
    }
    ```

    注意那个 MapperScan 是 tk 的,两个名字一样。
    imyasON
        3
    imyasON  
    OP
       2024-01-24 11:21:15 +08:00
    @ebony0319 我换成你的版本,改成 tk 还是报错了,真不知道咋回事,但是用 cmd 去-jar jar 包就是好的
    imyasON
        4
    imyasON  
    OP
       2024-01-24 11:21:47 +08:00
    @Goooooos 我复制过去了 但是不会用
    burymme11
        5
    burymme11  
       2024-01-24 11:45:45 +08:00
    你用了 tk.mybatis 这个框架,引入的 spring start 也是 tk.mybatis 的吗?
    Seulgi
        6
    Seulgi  
       2024-01-24 11:49:59 +08:00
    打包的 jar 启动没问题,那一般就是 idea 的 maven 缓存有问题。清一下 idea 缓存和索引,重启一下
    imyasON
        7
    imyasON  
    OP
       2024-01-24 13:09:08 +08:00
    @Seulgi maven clean 了,idea 我清下试试
    @burymme11 是吧
    testliyu
        8
    testliyu  
       2024-01-24 13:11:22 +08:00
    我之前也有过这个问题,但是一直没解决掉,一直用 java 命令启动了。
    imyasON
        9
    imyasON  
    OP
       2024-01-24 13:40:39 +08:00
    我刚刚试着把版本换成能改成 import tk.mybatis.mapper.common.BaseMapper; java -jar 也不行了。 但是改回原本的 1.3.1 java -jar 恢复正常。( idea 缓存也请了,maven 也 clean 了,离谱)
    KOMA1NIUJUNSHENG
        10
    KOMA1NIUJUNSHENG  
       2024-01-24 13:57:55 +08:00
    一个依赖一个依赖的检查,大概率依赖的冲突。
    imzcg2
        11
    imzcg2  
       2024-01-24 14:11:02 +08:00
    imyasON
        12
    imyasON  
    OP
       2024-01-24 14:39:27 +08:00
    @imzcg2 链接文章第一个不适合我,我就引了正文提到的一个 pom ,第二个也不适用,1.x 的版本没有 tk...会报红,升级文中版本号 可以改 tk ,这样的话 java-jar 这一种方式也坏掉了
    sephiroka
        13
    sephiroka  
       2024-01-24 15:19:08 +08:00
    几种 idea 特殊问题解决方法,我一直以来习惯
    1 、清除 idea 缓存并重启
    2 、maven/gradle 重新导入依赖,极端一点,删除 .m2 目录下所有已下载依赖
    3 、克隆源码新建项目,其实也是重新导入依赖
    4 、最后都不行了,利用 idea 插件分析依赖冲突问题
    imyasON
        14
    imyasON  
    OP
       2024-01-24 16:15:31 +08:00
    @testliyu
    @sephiroka 我妥协了,搞不定,cmd 凑合用
    hooych
        15
    hooych  
       2024-01-24 16:39:15 +08:00
    IDEA 配置的 maven 和 path 配置的 maven 可能不是同一个。
    imyasON
        16
    imyasON  
    OP
       2024-01-24 17:02:29 +08:00
    Dlin
        17
    Dlin  
       2024-01-24 17:32:10 +08:00
    你的依赖应该冲突问题。你的热部署插件 加载的类是没有这个方法的版本。
    Dlin
        18
    Dlin  
       2024-01-24 17:33:41 +08:00
    你可以尝试启动后 arthas 反编译看看加载的类是不是缺少这个方法。
    Dlin
        19
    Dlin  
       2024-01-24 17:35:58 +08:00
    热部署建议使用 jrebel ,spring 官方的用起来多多少少会有些问题,每次还要重新加载 class 后热重启。
    imyasON
        20
    imyasON  
    OP
       2024-01-24 17:46:32 +08:00
    @Dlin 我试试,水平有限,能知道你说的我的项目问题,但是我没有排查过,不知道咋弄
    testliyu
        21
    testliyu  
       2024-01-24 19:22:31 +08:00
    @imyasON #14 idea 有 maven 启动方式,可以吧 java-jar 写到那里面去,然后启动前触发一下 mvn install
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     987 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:52 PVG 02:52 LAX 11:52 JFK 14:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86