溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring-boot-maven-plugin未指定版本導致的編譯錯誤問題怎么解決

發(fā)布時間:2023-04-11 16:50:06 來源:億速云 閱讀:351 作者:iii 欄目:開發(fā)技術

本篇內容主要講解“spring-boot-maven-plugin未指定版本導致的編譯錯誤問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“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支持,無法執(zhí)行編譯。

    解決方案

    需要用戶在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>

    spring-boot-maven-plugin 構建找不到

    問題描述

    本地編譯打包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包

    通過對比,發(fā)現遠程倉庫里有了最新版本的路徑,但是里面確沒有jar包。

    解決

    通過分析,可以總結如下:

    spring-boot-maven-plugin沒有設置version,它會先去遠程倉庫找最新的版本,然后download到本地,然后完成maven操作等。但是遠程倉庫里沒有相應的jar包,導致執(zhí)行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未指定版本導致的編譯錯誤問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI