码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot 打包发布


    作者:大三的土狗

    专栏:SpringBoot入门到精通
    专栏:MyBatis-Plus
    在这里插入图片描述

    快速导航

    • 前言
      • 1、初始项目
          • 1、创建一个SpringBoot项目
          • 2、编写一个简单的Web项目
          • 3、项目运行效果
      • 2、打包
          • 1、导入坐标
          • 2、Clean
          • 3、Complier编译
          • 4、package打包
          • 5、启动
          • 6、问题
      • 3、Linux环境部署
          • 1、上传jar包
          • 2、运行
          • 3、测试
    • 总结


    前言

    SpringBoot的打包时打成jar包,不是war包。

      在软件领域,JAR文件(Java归档,英语:Java Archive)是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。

      JAR文件是一种归档文件,以ZIP格式构建,以.jar为文件扩展名。用户可以使用JDK自带的jar命令创建或提取JAR文件。也可以使用其他zip压缩工具,不过压缩时zip文件头里的条目顺序很重要,因为Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。

    1、初始项目

    通过一个简单的项目来打包jar包,来进行SpringBoot打包发布的学习。

    SpringBoot的打包与发布可以让前后段分离开发变得方便快捷。

    1、创建一个SpringBoot项目

    在这里插入图片描述

    2、编写一个简单的Web项目

    TestController代码

    package com.example.jar.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping()
    public class TestController {
        @RequestMapping("/test")
        public String test() {
            return "Hello World" +
                    "This is a Jar project";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    3、项目运行效果

      在浏览器输入:localhost:8080/test , 显示"Hello World" +“This is a Jar project”
    在这里插入图片描述

    2、打包

    1、导入坐标
    
        org.springframework.boot
        spring-boot-maven-plugin
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    我们只需要使用 Maven 的 package 指令打包就会在 target 目录下生成对应的 Jar 包。

    该插件必须配置,不然打好的 jar 包也是有问题的。

    2、Clean

      右侧工具栏maven,点击plugins的clean。
    在这里插入图片描述
    在这里插入图片描述

    3、Complier编译

      右侧工具栏maven,点击plugins的complier。

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

    4、package打包

    右侧工具栏maven,点击plugins的package进行打包。

    打包完成后会在左侧项目target文件下生成一个 .jar 文件。

    在这里插入图片描述

    5、启动

    1、进入 jar 包所在位置,在 命令提示符 中输入如下命令

    java -jar jar-0.0.1-SNAPSHOT.jar
    
    • 1

    在这里插入图片描述

    2、成功运行

    在这里插入图片描述

    3、在浏览器测试依然可以正常

    在这里插入图片描述

    6、问题

      可能遇到的问题,打包失败,jar包没有主清单属性,下面的代码粘贴到pom.xml指定位置。

      
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        1.8
                        1.8
                    
                
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        
                            
                                repackage
                            
                        
                    
                
            
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3、Linux环境部署

      上面可知,SpringBoot项目打包的jar包可以在 jdk 环境下运行,比war包更放便,下面我们把jar包部署到linux环境下进行测试。

    所需环境:

    • 一台云服务器(Linux系统)或者虚拟机
    • jdk环境
    1、上传jar包

      用Xftp或者其他软件把,把刚刚打jar包上传服务器的任意目录。

    在这里插入图片描述

    2、运行

      进入jar文件所在目录,输入nohup java -jar xxx & 命令启动项目。

    cd /usr/xmp
    
    • 1

    在这里插入图片描述

     nohup java -jar jar-0.0.1-SNAPSHOT.jar &
    
    • 1

    注:nohup java -jar xxx & 是后台启动,关闭链接也不会停止运行。

    关闭

    kill -9 [进程号]
    
    • 1
    3、测试

      输入ip地址+端口号+测试路径,成功运行。

    在这里插入图片描述

    总结

      以上就是SpringBoot的打包,以及部署到Linux的详细步骤,最后送上一句毒鸡汤:生活不会放弃你,但也不会放过你。

  • 相关阅读:
    java高级--SpringBoot篇
    c++源码编译过程(翻译阶段)的若干细节概要
    查询ip地址
    MATLAB算法实战应用案例精讲-【推荐系统】CTR预估模型
    计算机视觉 Project 1:Image Filtering and Hybrid Images
    使用curl执行Http请求
    fmt 库简介和示例【GO 基础】
    【C语言】冒泡排序的快排模拟
    AutowiredAnnotationBeanPostProcessor什么时候被实例化的?
    自娱自乐代码人的源码分析系列汇总
  • 原文地址:https://blog.csdn.net/qq_53463544/article/details/126448963
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号