• Home
  • Archives
  • 随笔
所有文章 友链 关于我

  • Home
  • Archives
  • 随笔

如何将SpringBoot打成可执行or可依赖jar包

发布于: 2021-08-24
更新于: 2023-07-09

SpringBoot

JAR包格式的不同

通过用maven install,我们可以在target目录下看到两个jar包

<!-- 打包的插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

打出来的包路径图
jar包生成路径图

我们可以发现有两个jar包

message-0.0.1-SNAPSHOT.jar message-0.0.1-SNAPSHOT.jar.origin
有META-INF的目录,在MANIFEST.MF中会标记出启动类
可执行 不可执行
有BOOT-INF,BOOT-INF也就是启动时指定的启动类以及相关依赖信息 无BOOT-INF
不可以被其他包依赖 可以

origin包情况

OriginJar包情况

# 文件内容 可以看到有启动类信息
# 这个对于我们来说也就是正常可执行类jar包
Manifest-Version: 1.0
Created-By: Maven Jar Plugin 3.2.0
Build-Jdk-Spec: 16
Implementation-Title: message
Implementation-Version: 0.0.1-SNAPSHOT
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.tyrantqiao.jarvis.message.MessageApplication
Spring-Boot-Version: 2.5.2
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx

不可执行包情况

不可执行包情况

Manifest-Version: 1.0
Created-By: Maven Jar Plugin 3.2.0
Build-Jdk-Spec: 16
Implementation-Title: message
Implementation-Version: 0.0.1-SNAPSHOT

打出可执行以及可依赖

如果想同时打出可依赖以及可执行的,修改下pom文件的maven配置

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 代表生产出来的jar包名字,比如现在的会生成message-0.0.1-SNAPSHOT-running.jar -->
                    <classifier>running</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

生产jar

如何将SpringBoot打成可执行or可依赖jar包
/archives/632b580c/
作者
tyrantqiao
发布于
2021-08-24
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信

扫一扫,分享到微信

微信分享二维码
Spring源码系列一始而终
面经实战到啥都会
© 2024 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 所有文章
  • 友链
  • 关于我

tag:

  • 复盘
  • 我
  • 规划
  • java
  • 面试
  • 源码
  • 架构
  • Hadoop
  • HTTP
  • TCP
  • 学习笔记
  • IDEA
  • maven
  • idea
  • Java
  • jdk
  • 面经
  • linux
  • 爱情
  • mysql
  • 性能
  • sql
  • Mysql
  • JAVA
  • 技术
  • Redis
  • MQ
  • Spring
  • 数据库
  • TIDB
  • spring
  • unity
  • chatgpt
  • 经验分享
  • 前端
  • redis
  • vue
  • git
  • shadowsocks
  • hexo
  • blog
  • bug
  • 开发
  • 业务
  • jvm
  • 算法
  • MySQL
  • nginx
  • Linux
  • mq
  • db
  • springCloud
  • ssh
  • python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 性格
  • 音乐
  • 程序员
  • 随笔
  • mybatis
  • 演讲
  • 域名
  • 猫咪
  • 她
  • github
  • 计划
  • 旅游
  • 软件
  • 心理
  • 情商
  • 幽默
  • 才艺
  • 穿搭
  • 编程
  • 排序
  • 查找
  • 缓存
  • 网络
  • 设计模式
  • c
  • 课程设计
  • centos
  • 数学
  • 本网站主题yilia设计者的主页
如果有问题或者想讨论的可以联系[email protected]或者[email protected]