Spring-Boot中父依赖或 spring-boot-maven-plugin报红处理办法

本文介绍了如何解决Spring Boot Maven Plugin报错的常见步骤,包括检查Maven配置、确认lombok插件安装、手动指定版本号、在线查找并添加依赖。提供了多个版本的依赖代码片段,强调了选择正确版本的重要性,并提示了处理父依赖报错的方法。

 <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>***spring-boot-maven-plugin***</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>

spring-boot-maven-plugin
报错,总结尝试解决,有以下几个解决方案。
1.如果,导入的是别人的项目,则核对并重现配置Maven项
正常情况下,重新解析和加载依赖,请注意一定保证联网OK。
这里,一般是pom.xml 中project 标签处报红。说明没有依赖jar库文件。如果能确定maven仓库有所需依赖,可以考虑不联网。
如果是自己创建的项目,并且已经配置Maven项,就可以跳过这一步。

在这里插入图片描述
在这里插入图片描述

2.检查这个插件是否安装 lombok,如哦已安装,则跳过这一步。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
小编的Install项中已有lombok,说明已经安装过了。
未安装,则需要安装。这个安装,亦简亦繁,主要很多同学的搜索不到。就要想其他办法了。
其中一个办法就是去
https://plugins.jetbrains.com/
下载到本地,自行安装
在这里插入图片描述Install Plugin from Disk
从本地磁盘安装插件

或者,对Http Proxy Settings 做一定的配置
URL:
http://plugins.jetbrains.com
在这里插入图片描述在这里插入图片描述一直转圈,就很无语。所谓条条大路通罗马,及时换一种方法解决了问题,不必非要去撞南墙不回头,这何尝不是一种修行呢。

3.根据groupId ,此处即是Maven仓库maven repository中本地层级的文件夹
找到对应的spring-boot-maven-plugin补上版本号。这个版本号,根据父依赖,版本号可以同级版本,也可以比父依赖版本低。
ye

在这里插入图片描述

org.springframework.boot spring-boot-maven-plugin ***2.5.6*** org.projectlombok lombok

4.去本地maven repository 仓库找【groupId 】org.springframework.boot下的【artifactId】 spring-boot-maven-plugin。结果发现空空如也。也就是没有这个插件依赖jar库文件,自然无法补版本号了。
那么,就赶紧复制artifactId 中的
spring-boot-maven-plugin
小编在后面也为大家准备一些该插建的依赖
去联网在线找到
https://mvnrepository.com/

在这里插入图片描述
在这里插入图片描述
这里呢,准备几个版本。根据父依赖版本号。
自选其一。粘贴到 pom.xml
标签
中 ,并下载。最后这个项目应该就OK了。然后,这个依赖也可以删调,注掉,保留,就随你自己的意思了。
顺便说一下,网上说添加版本号,是因为,IDEA本身的自带的版本号,低于项目版本,所以不会解析并下载插件,项目版本又是父依赖的版本决定的。所以合理选择父依赖的版本也挺重要,并不是说最高版本,一定最好。

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.6.0</version>
</dependency>

<!--  2.5 .x的最后一个版本 -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.5.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.5.6</version>
</dependency>
<!--  2.4 .x的最后一个版本 -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.5.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.4.13</version>
</dependency>

5.父依赖若是报错爆红,也可以尝试采用4的 办法解决。

若是本文,有帮助到你,请收藏+关注,一键三连,这是对小编最大的鼓励。

文系原创,转载,请附上转载地址,谢谢。

<think>我们正在讨论Spring Boot Maven插件的作用。根据引用[1]和[2],该插件是Spring Boot项目默认包含的,如果注释掉去掉,会有什么影响?同时引用[3]提到了它的参数配置和应用场景,引用[4]则提到了配置的问题(可能是版本问题依赖下载问题)。 因此,用户的问题聚焦于:Spring Boot Maven插件的作用是什么? 结合引用和Spring Boot官方文档,该插件主要有以下作用: 1. **创建可执行的jar(war)**:这是最核心的功能。Spring Boot项目打包后的普通jar包不能通过`java -jar`运行,因为它没有包含依赖的jar包。使用该插件打包后,会生成一个可执行的jar(fat jar),其中包含了所有依赖的jar包和Spring Boot的启动类加载器(loader),这样就能通过`java -jar`运行。 2. **运行Spring Boot应用**:该插件提供了一个`spring-boot:run`目标,可以在不打包的情况下直接运行Spring Boot应用(开发时非常方便)。 3. **重新打包应用**(引用[3]提到):可以将已经构建好的jarwar重新打包为可执行的形式。 4. **集成Actuator**:在构建时生成一些额外的元数据(比如生成git提交信息、构建信息等),这些信息可以通过Actuator的`/info`端点暴露。 5. **生成构建信息**:可以生成META-INF/build-info.properties文件,其中包含项目版本、构建时间等。 6. **排除依赖**:可以通过配置排除特定的依赖,以减小最终可执行jar的体积。 如果去掉该插件(如引用[2]所述),则: - 打包后的jar将是一个普通的jar,不能通过`java -jar`运行(因为没有包含依赖,也没有启动类加载器)。 - 无法使用`mvn spring-boot:run`命令来运行应用。 - 构建信息可能不会生成(如果没有其他替代方式)。 因此,在Spring Boot项目中,这个插件是必不可少的。 接下来,我们按照用户的要求生成相关问题。 </think>`spring-boot-maven-plugin` 是 Spring Boot 项目的核心构建插件,其主要作用如下: ### 一、核心功能 1. **创建可执行 JAR(Fat JAR)** 将项目及其所有依赖打包成**单一可执行 JAR**(包含嵌入式的 Tomcat/Jetty 服务器),支持 `java -jar your-app.jar` 直接启动应用[^1][^2]。 ```java // 打包后生成的JAR结构 your-app.jar ├── META-INF ├── BOOT-INF │ ├── classes // 项目编译文件 │ └── lib // 所有依赖库 └── org/springframework/boot/loader // Spring Boot启动器 ``` 2. **提供开发便捷命令** - `mvn spring-boot:run`:无需打包直接运行应用[^1] - `mvn spring-boot:start/stop`:启停嵌入式服务器 ```bash mvn spring-boot:run # 开发环境热部署运行 ``` --- ### 二、移除插件的影响(引用[2]) 若在 `pom.xml` 中移除该插件: ```xml <!-- 移除后 --> <build> <plugins> <!--spring-boot-maven-plugin --> </plugins> </build> ``` 将导致: 1. **无法生成可执行JAR** 打包产物为标准JAR,不含依赖库和启动器,执行时错: ```bash java -jar target/app.jar # 错误:找不到主清单属性 ``` 2. **失去开发便捷命令** `spring-boot:run` 等命令失效[^2] 3. **破坏Spring Boot特性** 部分特性(如Actuator健康检查)依赖插件生成的元数据 --- ### 三、进阶配置(引用[3]) 插件支持多种参数定制: ```xml <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <mainClass>com.example.MainApp</mainClass> <!-- 指定主类 --> <excludes> <!-- 排除依赖 --> <exclude> <groupId>org.unwanted</groupId> <artifactId>dependency</artifactId> </exclude> </excludes> <layers> <!-- 分层打包优化Docker镜像 --> <enabled>true</enabled> </layers> </configuration> </plugin> ``` --- ### 四、常见问题(引用[4]) **插件依赖解析失败)** 的原因: 1. **版本缺失**:未指定`<version>`标签 ```xml <!-- 错误示例 --> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 缺少version --> ``` 2. **仓库不可达**:离线环境未正确安装插件 3. **子POM冲突**:子模块未继承POM的插件版本 --- > **总结**:该插件是Spring Boot应用的生命周期管理核心,负责构建可执行包、提供开发命令、优化部署结构。移除后项目将失去Spring Boot的核心特性支持[^1][^2]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值