当前位置: 首页 > news >正文

spring-boot-maven-plugin springboot打包配置问题

目录

一、打包可执行jar

二、打包非可执行jar

三、两种jar对比


springboot项目的pom文件中一般都配置了spring-boot-maven-plugin打包插件。

            <!-- 打包插件依赖 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

一般情况下,只需要映入 spring-boot-maven-plugin 依赖即可,但是某些情况下还是需要额外配置部分参数。

一、打包可执行jar

可执行jar,包含了项目运行所需的所有jar,打包后可使用 java -jar xxx.jar 目录运行,譬如常用的SpringBoot的web项目,还有常规的application为web项目。

如果项目中存在多个main方法(多个主类),就需要配置<mainClass>指定主类

            <!-- 打包插件依赖 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 主类,入口 -->
                    <mainClass>com.zhh.zhhd.ZhhdApplication</mainClass>
                    <!-- <includeSystemScope>true作用:如果项目中存在本地jar,打成jar的同时将本地jar包也引入进去 -->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>

二、打包非可执行jar

非可执行jar中只有源码,不包含依赖的其他jar,非可执行jar一般都是用做依赖包,譬如我们项目的pom文件引入的各种第三方依赖包,这些依赖包一般都是不可以直接运行的。

非可执行jar,只需要在配置中添加标签:<skip>true</skip>

            <!-- 打包插件依赖 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 主类,入口 -->
                    <mainClass>com.zhh.zhhd.ZhhdApplication</mainClass>
                    <!-- <includeSystemScope>true作用:如果项目中存在本地jar,打成jar的同时将本地jar包也引入进去 -->
                    <includeSystemScope>true</includeSystemScope>
                    <!-- <skip>true</skip>:只打包源码,不是一个可执行(运行)jar,是一个依赖包
                         <skip>false</skip>:默认的值,包含源码和依赖包,是一个可执行(运行)jar
                     -->
                    <skip>true</skip>
                </configuration>
            </plugin>

作用:

<skip>true</skip>:只打包源码,不是一个可执行(运行)jar,是一个依赖包
<skip>false</skip>:默认的值,包含源码和依赖包,是一个可执行(运行)jar

三、两种jar对比

1)大小不一样

可执行jar包含了项目运行所需要的所有外部依赖包,非可执行jar只包含源码,所有大小不一样。

1)jar包的目录不一样

可执行jar,在源码class目录外层多了BOOT-INF目录,里面多了lib目录,lib下包含了所需的工作依赖jar,MANIFEST.MF文件中多了启动类的配置

非可执行jar

可执行jar

根据不同情况选择不同的打包配置。

相关文章:

  • Hibernate是如何处理事务的?请描述一下Hibernate的事务管理。Hibernate中的缓存机制是怎样的?如何配置和使用缓存?
  • 爆肝整理万能sass框架:react18+webpack5+typescript+ant Design,框架在手,交付无忧!!!
  • 2024 GoLand激活,分享几个GoLand激活的方案
  • SOLIDWORKS 2024新版价格 SOLIDWORKS2024专业版白金版多少钱?
  • Windows C++ 任意线程通过hwnd将操作发送到UI线程执行
  • window mysql 安装出现的问题
  • 防火墙中的SNAT 与DNAT
  • 网络流量监控软件AnaTraf:优化性能、排除故障的最佳选择
  • 每日leetcode--接雨水
  • PyTorch之完整的神经网络模型训练
  • 算法模版总结
  • 蓝桥杯[OJ 3412]-最小化战斗力差距-CPP-贪心
  • 大语言模型(LLM) RAG概念
  • 面试题:限流的算法有哪些?
  • php8连接mysql
  • pytest生成allure的报告
  • Rust 安装与版本更新
  • 探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)
  • Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2
  • 20240312-2-贪心算法
  • 江西省司法厅厅长张强已任江西省委政法委分管日常工作副书记
  • 让“五颜六色”面孔讲述上海故事,2025年上海城市推荐官开启选拔
  • 宇数科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 巴基斯坦外长:近期军事回应是自卫措施
  • 央行设立服务消费与养老再贷款,额度5000亿元
  • 优秀“博主”在上海杨浦购房最高补贴200万元,有何条件?