spring-boot-maven-plugin未指定版本导致的编译错误问题

目录
  • 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支持,无法执行编译。

解决方案

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

通过对比,发现远程仓库里有了最新版本的路径,但是里面确没有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>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • spring-boot中spring-boot-maven-plugin报红错误及解决

    目录 spring-boot-maven-plugin报红错误 项目场景 解决方案 Maven插件spring-boot-maven-plugin 应用背景 特别说明 总结 spring-boot-maven-plugin报红错误 项目场景 第一次创建springboot的时候,spring-boot-maven-plugin 爆红 <build> <plugins> <plugin> <groupId>org.springframework.boot<

  • spring-boot-maven-plugin报红解决方案(亲测有效)

    本文主要介绍了spring-boot-maven-plugin报红解决方案,亲测有效,具体如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc

  • 解决IDEA springboot"spring-boot-maven-plugin"报红问题

    使用环境 项目环境:Idea 2020.2.3. Maven 3.6.3 .springboot 2.1.4 本人在创建springboot项目时spring-boot-maven-plugin 及Idea右侧Plugins划红,导致项目启动打包有问题.虽然项目能跑,但是后续开发中可能会出现不可预知的问题.太碍眼决定把它解决掉. 可能原因: 1.maven没有刷新: 2.Maven插件下载速度太慢,从国外的中央仓库下载: 3.也有可能是本地springboot版本问题等.... 分析思路: 1.

  • spring-boot-maven-plugin:<unknown>的完美解决方法

    1.在对应的pom.xml文件里添加"插件的某个版本"<version>xxx</version>. <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> 2."插件的某个版本&quo

  • Spring Boot Maven Plugin打包异常解决方案

    [背景]spring-boot项目,打包成可执行jar,项目内有两个带有main方法的类并且都使用了@SpringBootApplication注解(或者另一种情形:你有两个main方法并且所在类都没有使用@SpringBootApplication注解),pom.xml如下 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin<

  • Spring Boot Maven插件使用详解

    Spring Boot Maven插件提供了使用Spring Boot应用程序步骤如下: 重新打包:创建一个可自动执行的jar或war文件.它可以替换常规工件,或者可以使用单独的分类器附加到构建生命周期. 运行:运行您的Spring引导应用程序与几个选项传递参数. 启动和停止:将Spring Boot应用程序集成到集成测试阶段,以便应用程序在其之前启动. 构建信息:生成可由致动器使用的构建信息. 重新打包一个应用程序 为了重新打包应用程序,只需要在pom.xml中添加对插件的引用,具体配置如下:

  • Spring Boot Maven 打包可执行Jar文件的实现方法

    Maven pom.xml 必须包含 <packaging>jar</packaging> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>

  • Spring Boot+maven打war包的方法

    存在一个坑: 官网文档 指出以下前3步做法,但是这样只可以打出可运行的jar包,要打出war包还要在文档后面的链接跳到另一个页面,才能找到第四步的做法,也就是最终能够打出war包,可能有些朋友有些粗心没找到第四步的链接,而以为只做了前三步就可以打出war包了,结果一直出错,还以为自己的业务代码有问题,然后一直瞎折腾,浪费很多时间(比如我),因此我把整个过程写于此. 1.指定war打包方式 <packaging>jar</packaging> 2.pom.xml添加spring-bo

  • Spring Boot maven框架搭建教程图解

    摘要:让Spring应用从配置到运行更加快速,演示DIY Spring Boot框架时,如何配置端口号,如何添加日志. Spring Boot 框架帮助开发者更容易地创建基于Spring的应用程序和服务,使得开发者能够快速地获得所需要的Spring功能.提供了非功能性的大型项目类特性,如(如内嵌服务器.安全.度量.健康检查.外部化配置),内部封装了tomcat的一些核心jar包,将发布封装了,因此不需要将项目(war包)发布到外部tomcat上. 可以在Spring Boot官网 https:/

  • vue中使用sass及解决sass-loader版本过高导致的编译错误问题

    目录 使用sass及解决sass-loader版本过高导致编译错误 安装依赖包 使用 解决编译错误 安装sass(规避因版本过高报错) 安装的两个命令 配置文件 样式标签更改 使用sass及解决sass-loader版本过高导致编译错误 安装依赖包 安装node-sass.sass-loader和style-loader: npm i node-sass sass-loader style-loader -D 使用 <style scoped lang="scss"> &l

  • spring boot启动时mybatis报循环依赖的错误(推荐)

    自己在做项目时,想使用热部署减少部署时间,于是添加了springboot-devtools 在maven中添加了依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 然后正常的启动项目时发现控制台一直在不停的输出错误,错误如图 不明所以,然后就准备去调

  • spring Boot 应用通过Docker 来实现构建、运行、发布流程

    1. Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口.Docker image 是用于运行容器化进程的方案,在本文中,我们将构建一个简单的 Spring Boot 应用程序. 2.环境搭建 JDK 1.8+ Maven 3.0+ Docker 最新版. 3.用 Maven 构建项目 3.1 创建目录结构 mkdir -p

  • Spring Boot + thymeleaf 实现文件上传下载功能

    最近同事问我有没有有关于技术的电子书,我打开电脑上的小书库,但是邮件发给他太大了,公司又禁止用文件夹共享,于是花半天时间写了个小的文件上传程序,部署在自己的Linux机器上. 提供功能: 1 .文件上传 2.文件列表展示以及下载 原有的上传那块很丑,写了点js代码优化了下,最后界面显示如下图: 先给出成果,下面就一步步演示怎么实现. 1.新建项目 首先当然是新建一个spring-boot工程,你可以选择在网站初始化一个项目或者使用IDE的Spring Initialier功能,都可以新建一个项目

  • 快速搭建Spring Boot+MyBatis的项目IDEA(附源码下载)

    如何快速构建一个Spring Boot的项目工具 ideaJDK版本 1.8Spring Boot 版本 1.5.9环境搭建实现:最基础前端可以访问到数据库内的内容 开始 1.IDEA 内部新建一个项目,项目类型选择Spring Initializr,Project SDK选择适合你当前环境的版本,这里我选择的是1.8(Spring Boot 2.0以上的版本,JDK选择请选择1.8即以上版本),构建服务选择默认就好,点击Next 2.填写Group和Artifact(此处我使用的是默认,请根据

随机推荐