springboot项目打包成jar

springboot项目打包成jarSpringBoot 项目打包成 jar 一 为什么打包二 如何打包 1 使用 IDEA 进行打包 2 使用 maven 进行打包三 运行 jar 包四 注意一 为什么打包项目开发完毕后会将前后端应用打包 然后部署到服务器上运行 JavaWeb 应用在 SpringBoot 之前 通常是打包成 war 包 结合 Tomcat 来完成部署 而对于 SpringBoot 官方的建议是将 SpringBoot 应用打包成一个 fatjar SpringBoot 默认打包方式 即项目的依赖 jar 包也会被包含在 SpringBoot 项目的 ja


一、为什么打包

项目开发完毕后会将前后端应用打包,然后部署到服务器上运行。Java Web应用在Spring Boot之前,通常是打包成war包,结合Tomcat来完成部署。而对于SpringBoot,官方的建议是将Spring Boot应用打包成一个fat jar(SpringBoot默认打包方式),即项目的依赖jar包也会被包含在Spring Boot项目的jar包当中,这个fat jar会把Tomcat内置进来,所以部署时也不需要单独配置Tomcat。这样部署一个SpringBoot应用就非常简单,无需预装任何服务器,只需要上传jar包即可。


二、如何打包

(1)使用IDEA进行打包

1.打开项目,右击项目选中Open Module Settings进入project Structure,如下图所示:
在这里插入图片描述
选中Artifacts,点击中间的加号(Project Settings->Artifacts->JAR->From modules with dependencies ),如下图所示:
在这里插入图片描述






2.弹出Create JAR from Modules,选择‘Main Class’,然后点击OK
在这里插入图片描述

3.开始打包,点击右侧的Maven Projects,打开LIfecycle,先点击clean,再点击package,生成target文件夹,里面有以项目名命名加版本号的jar文件,至此打包完成。
在这里插入图片描述


(2)使用maven进行打包

SpringBoot自带一个更简单的spring-boot-maven-plugin插件可以用来打包,只需要在pom.xml中加入以下配置:

<project> <build> <plugins> <plugin> <groupId>org.springframework.boot 
        groupId> <artifactId>spring-boot-maven-plugin 
         artifactId>  
          plugin>  
           plugins>  
            build>  
             project> 

无需任何配置,这个插件会自动定位应用程序的入口Class,执行以下Maven命令即可打包:

$ mvn clean package 

三、运行jar包

进入jar所在的文件夹,使用java -jar命令运行jar,项目就能启动

java -jar demoa-0.0.1-SNAPSHOT.jar 

在这里插入图片描述


四、注意

  • 因为springboot内置了tomcat,所以springboot项目打包成jar可以免去tomcat的配置,如果是打包成war包,则还需要配置tomcat。
  • 打包后在target目录下有两个jar文件,其中有一个jar包后缀为.original,这是Maven标准打包插件打的jar包,它只包含我们自己的Class,不包含依赖,而后缀为.jar的是SpringBoot打包插件创建的包含依赖的jar,可以直接运行。

感谢大家的耐心阅读,如有建议请私信或评论留言

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205652.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:31
下一篇 2026年3月19日 下午5:31


相关推荐

  • vi/vim 文件查找与替换

    vi/vim 文件查找与替换vim 有着强大的替换和查找功能 若能进行熟练的运用 可以让工作效率得到一个很大程度的提高 替换语法 addr s 源字符串 目的字符串 option addr 表示检索范围 如 1 n 表示从第 1 行到 n 行 表示整个文件 同 1 表示从当前行到文件尾 addr 省略时表示当前行 s 表示替换操作 其为 substitute 的缩写 optio

    2026年3月19日
    2
  • 微信开放平台授权登录详细流程-第三方登录「建议收藏」

    微信开放平台授权登录详细流程-第三方登录「建议收藏」官方文档介绍的很详细,下面是看到的一篇博客,很有帮助,感谢!原文:https://blog.csdn.net/qq_34190023/article/details/81133619 据微信开放平台“开发资源”中网站应用微信登陆功能开发指南描述:进行授权登陆接入前,需要先注册一个开发者账号,并拥有一个已经审核通过的网站应用,并获取AppID和APPSecret,然后申请微信登陆并通过审核后…

    2022年5月9日
    103
  • xplanner-0.7b7b 部署问题解决

    xplanner-0.7b7b 部署问题解决

    2021年5月7日
    120
  • 排序二叉树及其遍历「建议收藏」

    排序二叉树及其遍历「建议收藏」  所谓建立排序二叉树就是,就是将各结点数据元素顺序插到一棵二叉树中,在插入的过程中,始终保持二叉树中每个结点的值都大于其左子树上每个结点的值,而小于或等于其右子树上每个结点的值,每个结点信息包括结点数据(结点值)、左子树指针、右子树指针。程序执行的过程中,bt指针始终指向根结点,p指针指向当前已找到的结点,q指针不断向下寻找新的结点。  为实现二叉树的非递归算法,需要设置一个栈来保存指向结点

    2022年7月25日
    9
  • Linux生成静态库_linux生成静态库

    Linux生成静态库_linux生成静态库转自:https://blog.csdn.net/ddreaming/article/details/53096411一、动态库、静态库简介库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库.a(win系统下是lib)和动态…

    2026年4月19日
    7
  • 「Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    「Odoo 基础教程系列」第三篇——从 Todo 应用开始(2)

    2021年6月11日
    121

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号