SpringBoot項(xiàng)目啟動(dòng)打包報(bào)錯(cuò)類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0的解決方法
一、前言
最近又遇到一個(gè)奇葩問題。
之前項(xiàng)目好好的,能啟動(dòng)能打包;
由于這個(gè)項(xiàng)目沒有什么需求,就什么也沒有改,放了幾個(gè)月。
今天要用這個(gè)項(xiàng)目的時(shí)候,發(fā)現(xiàn)打包報(bào)錯(cuò):
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project my_project: Compilation failure [ERROR] /E:/my_project/src/main/java/com/main/MyApplication.java:[6,37] 無法訪問org.mybatis.spring.annotation.MapperScan [ERROR] 錯(cuò)誤的類文件: E:\apache-maven-repository\org\mybatis\mybatis-spring\3.0.1\mybatis-spring-3.0.1.jar(org/mybatis/spring/annotation/MapperScan.class) [ERROR] 類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0 [ERROR] 請(qǐng)刪除該文件或確保該文件位于正確的類路徑子目錄中。
啟動(dòng)這個(gè)項(xiàng)目的時(shí)候,也報(bào)這個(gè)錯(cuò),無法啟動(dòng)。
明明幾個(gè)月前是好好的,什么代碼都沒有改,過了幾個(gè)月就不能啟動(dòng)不能打包了,真的奇葩。
還好最終想辦法解決了這個(gè)問題,在此總結(jié)下。
二、排查過程
1.看報(bào)錯(cuò)信息,項(xiàng)目啟動(dòng)類MyApplication.java
里,用到了:
import org.mybatis.spring.annotation.MapperScan;
然后這句報(bào)錯(cuò),說是無法訪問。
2.按ctrl點(diǎn)進(jìn)這個(gè)類查看,發(fā)現(xiàn)使用的是mybatis-spring-3.0.1.jar。
3.查看maven樹,發(fā)現(xiàn)項(xiàng)目里既用了mybatis-spring-3.0.1.jar,又用了mybatis-spring-2.0.1.jar,有沖突。
4.百度發(fā)現(xiàn),報(bào)錯(cuò)類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0可能是某個(gè)jar包版本用的有問題。
5.從maven樹中找mybatis-spring-3.0.1.jar,找到了在pom.xml文件中,有:
<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>RELEASE</version> </dependency>
就是這里用到了mybatis-spring-3.0.1.jar
,有了沖突。
6.把上面的代碼改為這樣:
<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency>
指定讓它使用mybatis-spring-2.0.1.jar
。
然后再啟動(dòng)項(xiàng)目、打包項(xiàng)目,就沒有問題了。
三、問題產(chǎn)生的原因
這次這個(gè)問題,主要是幾個(gè)月前項(xiàng)目是可以啟動(dòng)、打包的;
這幾個(gè)月內(nèi)也沒有改項(xiàng)目代碼;
然后今天用的時(shí)候突然就不能啟動(dòng)和打包了。
本人猜測(cè),是因?yàn)閜om.xml里之前指定的版本號(hào)是RELEASE,而這個(gè)maven用的地址又是公司內(nèi)部的,也就是從公司內(nèi)部下載的依賴jar包;
幾個(gè)月前,公司內(nèi)部RELEASE的包還是mybatis-spring-2.0.1.jar,但是最近換成了mybatis-spring-3.0.1.jar,就導(dǎo)致項(xiàng)目突然不能啟動(dòng)和打包了;(也沒有公告說換RELEASE的jar包了,坑)
因此,只能手動(dòng)指定為用2.0.1版本的mybatis-spring-boot-starter包,才能讓項(xiàng)目正常啟動(dòng)和打包。
四、總結(jié)
1.出現(xiàn)類似錯(cuò)誤如:類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0
,一般是由于某個(gè)jar包版本錯(cuò)誤導(dǎo)致的,需要仔細(xì)查看報(bào)錯(cuò)信息,選用正確版本的jar包。(可以換低版本的jar包試試,一般不用換高版本的。)
2.可以通過查看maven樹的方式、找到?jīng)_突的jar包、換用正確版本的jar包。
3.如果在沒有改項(xiàng)目代碼的情況下、之前項(xiàng)目能用、突然出現(xiàn)這個(gè)錯(cuò)誤,有可能是maven庫里的jar包被更新了,就需要在自己的pom.xml
文件中手動(dòng)指定使用的jar包版本號(hào)才行。
以上就是SpringBoot項(xiàng)目啟動(dòng)打包報(bào)錯(cuò)類文件具有錯(cuò)誤的版本 61.0, 應(yīng)為 52.0的解決方法的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot報(bào)錯(cuò)類文件具有錯(cuò)誤的版本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 解決springboot+activemq啟動(dòng)報(bào)注解錯(cuò)誤的問題
- springboot項(xiàng)目啟動(dòng),但是訪問報(bào)404錯(cuò)誤的問題
- 記一次springboot配置redis項(xiàng)目啟動(dòng)時(shí)的一個(gè)奇怪的錯(cuò)誤
- 解決Springboot啟動(dòng)報(bào)錯(cuò):類文件具有錯(cuò)誤的版本61.0,應(yīng)為?52.0
- 啟動(dòng)springboot項(xiàng)目時(shí)報(bào)錯(cuò):無法訪問org.springframework.web.bind.annotation.GetMapping …具有錯(cuò)誤的版本 61.0,應(yīng)為52.0?的解決方案
- 啟動(dòng)SpringBoot報(bào)JavaMail加載錯(cuò)誤的原因分析和解決
- springboot項(xiàng)目啟動(dòng)類錯(cuò)誤(找不到或無法加載主類 com.**Application)
- spring boot啟動(dòng)出現(xiàn)Unable to start ServletWebServerApplicationContext due to missing ServletWebServer錯(cuò)誤解決
相關(guān)文章
Android中Socket通信的實(shí)現(xiàn)方法概述
這篇文章主要介紹了Android中Socket通信的實(shí)現(xiàn)方法,很有實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08Springboot集成第三方j(luò)ar快速實(shí)現(xiàn)微信、支付寶等支付場(chǎng)景
這篇文章主要介紹了Springboot集成第三方j(luò)ar快速實(shí)現(xiàn)微信、支付寶等支付場(chǎng)景,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java中使用回調(diào)函數(shù)的方法實(shí)例
本文主要介紹了Java中使用回調(diào)函數(shù)的方法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Spring Boot使用線程池創(chuàng)建多線程的完整示例
在 Spring Boot 2 中,可以使用 @Autowired 注入 線程池(ThreadPoolTaskExecutor 或 ExecutorService),從而管理線程的創(chuàng)建和執(zhí)行,以下是使用 @Autowired 方式注入線程池的完整示例,感興趣的朋友一起看看吧2025-03-03SpringBoot中服務(wù)消費(fèi)的實(shí)現(xiàn)
本文主要介紹了SpringBoot中服務(wù)消費(fèi)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Java CompletableFuture 異步超時(shí)實(shí)現(xiàn)深入研究
這篇文章主要為大家介紹了Java CompletableFuture 異步超時(shí)實(shí)現(xiàn)深入研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02idea新建maven項(xiàng)目沒有src目錄的操作方法
這篇文章主要介紹了idea新建maven項(xiàng)目沒有src目錄的兩種操作方法,需要的朋友可以參考下2018-03-03詳解Spring Boot配置使用Logback進(jìn)行日志記錄的實(shí)戰(zhàn)
本篇文章主要介紹了詳解Spring Boot配置使用Logback進(jìn)行日志記錄的實(shí)戰(zhàn),具有一定的參考價(jià)值,有興趣的朋友可以了解一下2017-07-07