您好,登錄后才能下訂單哦!
本篇內容主要講解“spring-boot-maven-plugin未指定版本導致的編譯錯誤問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“spring-boot-maven-plugin未指定版本導致的編譯錯誤問題怎么解決”吧!
springboot應用在使用maven編譯時會報如下錯誤:
Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.0.0-M2:repackage (default) on project mis: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.0.0-M2:repackage failed: Unable to load the mojo 'repackage' in the plugin 'org.springframework.boot:spring-boot-maven-plugin:3.0.0-M2' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Caused by: java.lang.UnsupportedClassVersionError: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
原因是maven在編譯打包過程中沒有指定spring-boot-maven-plugin的版本,默認會從nexus倉庫中拉取最新的打包插件版本,而最新的3.0.0版本不被jdk8支持,無法執行編譯。
需要用戶在pom.xml文件中手動指定spring-boot-maven-plugin該插件的打包版本。
如:
加上版本<version>2.2.6.RELEASE</version>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> <configuration> <finalName>${project.artifactId}</finalName> <mainClass>com.xxl.job.admin.XxlJobAdminApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
本地編譯打包maven項目時,報spring-boot-maven-plugin 構建找不到的錯誤。昨天還好好的,本地代碼里的pom文件沒有做任何改動。
pom.xml中有一段下面的配置:(已去掉項目信息)
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <classifier>boot</classifier> <mainClass>...</mainClass> </configuration> </plugin>
關鍵錯誤信息如下:
spring-boot-maven-plugin-2.3.1.RELEASE.jar找不到。
去本地倉庫,檢查是否有該jar包
${user.home}/.m2
去遠程倉庫查看,檢查是否有該版本的jar包
通過對比,發現遠程倉庫里有了最新版本的路徑,但是里面確沒有jar包。
通過分析,可以總結如下:
spring-boot-maven-plugin沒有設置version,它會先去遠程倉庫找最新的版本,然后download到本地,然后完成maven操作等。但是遠程倉庫里沒有相應的jar包,導致執行maven編譯出錯。因為遠程倉庫里已經有了最新版本的路徑,它就不會使用已經存在的版本。
解決:
給spring-boot-maven-plugin指定具體的version,如下設置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.0.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <classifier>boot</classifier> <mainClass>...</mainClass> </configuration> </plugin>
到此,相信大家對“spring-boot-maven-plugin未指定版本導致的編譯錯誤問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。