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

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

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值