Springboot项目的服务器部署与发布方式

 更新时间:2025年03月10日 16:40:26   作者:Kisaragi Jyunn  
本文记录了将Springboot项目部署到服务器并发布的过程,包括在IDEA中打包、选择服务器、连接服务器、安装环境、上传jar包、配置环境变量以及运行项目等步骤

Springboot 项目的服务器部署与发布

本文旨在记录第一次将Springboot项目部署到服务器并发布的过程、遇到的问题及解决办法。

一、在IDEA中将项目打包

设置访问端口号

在application.yml这个文件中加入(端口多少由自己设置)

利用idea打包

右侧边栏中点击Maven,打开lifecycle,找到其中的package选项,双击。

当看到BUILD SUCCESS说明已经打包成功了。

jar包保存在项目target文件夹中

二、 连接服务器

租用云服务器

市面上有许许多多的服务器,可自行选择。这里以Google cloud云服务器为例介绍。

1、访问 Google cloud 官网 https://cloud.google.com/,点击右上角“Start Free”按钮。

2、登录谷歌帐号

使用谷歌帐号登录,没有的话注册一个。

2019年,国家/地区选项栏已取消了“中国”选项,这里我们可以随便选一个,比如香港或者台湾。

3、填写注册信息

填写注册信息,包括姓名、地址、联系方式等。

绑定支持双币个人信用卡,会扣除1美元作为卡验证费用,验证通过后会原路返还。

4、完成注册

填写完上述资料后,点击“START MY FREE TRIAL”按钮,便提示已成功注册。获得 300 美元的赠金,一年内有效,而且承诺如果赠金用完,不会主动扣费。

创建VM实例

1、选择 “Computer Engine”

点击菜单中的 Compute Engine,或者直接点击热门产品栏中的“Compute Engine”

2、选择创建 VM 实例

点击创建按钮,来创建一个 VM 实例。

3、填写机器配置

填写名称,选择区域,机器类型等内容,右侧会显示每月的费用,注意累计费用不要超出赠金总额。这里选择了 1 个共享 vCPU + 1.7 GB 内存。

4、启动磁盘

选择启动磁盘,可以修改磁盘大小和类型,还可以选择操作系统。

5、填写网络接口信息

填写网络接口信息,外部 IP 选择固定 IP。

6、完成创建

确认机器配置信息后,点击创建按钮完成 VM 实例的创建。

防火墙配置

1、选择“查看网络详情”

点击实例信息右侧的更多图标,选择“查看网络详情”。

2、创建防火墙规则

点击“防火墙规则”,选择“创建防火墙规则”。

3、完成创建

创建防火墙规则,需要注意的是,目标一栏选择“网络中的所有实例”,不然外网无法访问。

三、通过xshell远程连接服务器

进入xshell官网

xshell官网地址 :https://www.xshell.com/zh/xshell/

1、点击下载

2、选择免费授权页面

3、下载XSHELL

连接服务器

方法一:手动配置

点击左上角文件下方的绿色按钮新建会话,弹出如下窗口。

  • 名称——会话名称
  • 协议——ssh连接选择协议
  • 主机——要连接的服务器ip
  • 端口号——要连接的服务器端口
  • 确定——确定建立新会话

方法二:命令行输入

在命令行中输入:

ssh root@IP号:端口号

四、在linux服务器安装环境上传jar包

1、首先需要熟悉一下linux的命令:

Linux命令速查表:https://quickref.cn/docs/linux-command.html

2、输入命令ls展示当前目录下文件

什么都没显示说明当前目录为空

3、使用mkdir命令创建目录

若出现以下情况,说明用户权限不够,需要添加权限或者使用root登录

添加用户添加权限方法:

首先进入root用户,打开终端

  • 新建用户并创建家目录
sudo useradd -d /home/xpt -m xpt 
  • 更改为bash命令
sudo usermod -s /bin/bash xpt
  • 设置密码
sudo passwd xpt
  • 设置sudo权限
  sudo chmod u+w /etc/sudoers
  sudo vi /etc/sudoers

4、cd命令进入目录

5、使用rz命令上传jar包

弹出打开窗口,找到项目中的target目录,找到jar包并选择打开

上传完毕后使用 ls 命令,jar包已成功上传。

(在上传过程中可能出现如下报错:)

(出现乱码、连接断开,并且无法通过命令行输入重新连接)

失败原因:

经过查阅资料,有可能是因为windows的文件带有一些特殊字符,编码方式不同,导致传输失败。

解决方法:

重新打开会话重新连接服务器,并使用rz -be 命令

安装JDK

错误方法:

将windows系统中的JDK压缩并通过rz命令上传至linux服务器,通过zip命令解压JDK,并配置环境变量。

结果:

无法使用

正确方法:

1、进入官网下载

官网 - 历史版本下载地址:https://www.oracle.com/java/technologies/downloads/archive/

选择一款JDK后,选择x86Linux系统的版本下载

2、将JDK上传至Linux服务器

  • 使用mkdir命令创建一个java目录
mkdir java
  • 使用cd命令进入java目录
cd java
  • 使用rz命令上传JDK压缩包
rz

使用tar -zxvf命令解压JDK压缩包

tar -zxvf jdk-20.0.2_linux-x64_bin.tar.gz  

压缩完成后会出现新的文件夹

配置环境变量

1、配置profile文件

通过vi命令打开/etc/profile文件

点击键盘中的INSERT按钮,进入编辑。

在文件的最后加上以下代码:

export JAVA_HOME=/home/wrz/java/jdk-20.0.2export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

(注意第一句 export JAVA_HOME=/home/wrz/java/jdk-20.0.2是自己的jdk的路径)

按下ESC退出编辑模式,输入:wq! 保存并退出

报错:

原因:权限不足

解决方法:使用sudo语句或使用root账号登录

(输入密码时不会显示)

编辑完路径后使用wq!保存并退出。

2、重新加载配置文件

使用source命令

source /etc/profile 

java -version 命令可使用,路径配置完成。

五、 运行项目

nohup命令

用途:

不挂断地运行命令。

语法:

nohup Command [ Arg … ] [ & ]
  • 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
  • 如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
  • 如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

退出状态:

该命令返回下列出口值:   

  • 126 可以查找但不能调用 Command 参数指定的命令。   
  • 127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。   
  • 否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

&命令

用途:

在后台运行

nohup command &  

通过nohup和&命令可以实现项目在服务器后台一直挂载运行

1、使用nohup命令运行jar包

nohup java -jar Bolg-0.0.1-SNAPSHOT.jar &   

2、查看项目日志

tail -500f nohup.out  

3、查看进程

使用语句

ps -ef  

至此,项目已在服务器端运行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Kotlin 标准函数和静态方法示例详解

    Kotlin 标准函数和静态方法示例详解

    这篇文章主要为大家介绍了Kotlin 标准函数和静态方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • @feignclient名字冲突的解决方案

    @feignclient名字冲突的解决方案

    这篇文章主要介绍了@feignclient名字冲突的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 详解Java ThreadPoolExecutor的拒绝策略

    详解Java ThreadPoolExecutor的拒绝策略

    这篇文章主要介绍了Java ThreadPoolExecutor的拒绝策略,本文对于线程的池的几种策略进行详细的讲解,在实际的生产中需要集合相关的场景来选择合适的拒绝策略,需要的朋友可以参考下
    2022-08-08
  • 解决IDEA中Maven项目中JSTL标签无效问题

    解决IDEA中Maven项目中JSTL标签无效问题

    这篇文章主要介绍了关于IDEA中Maven项目中JSTL标签无效问题的解决方法,需要的朋友可以参考下
    2018-09-09
  • SpringMVC 异常处理机制与自定义异常处理方式

    SpringMVC 异常处理机制与自定义异常处理方式

    这篇文章主要介绍了SpringMVC 异常处理机制与自定义异常处理方式,具有很好的开车价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java中堆和栈的区别分析

    java中堆和栈的区别分析

    这篇文章主要介绍了java中堆和栈的区别,分析了Java中堆和栈的原理及使用时的注意事项,需要的朋友可以参考下
    2014-09-09
  • Maven项目部署到Jboss出现Failed to create a new SAX parser

    Maven项目部署到Jboss出现Failed to create a new SAX parser

    这篇文章主要为大家详细介绍了Maven项目部署到Jboss出现Failed to create a new SAX parser的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Springboot 缓存@Cacheable 的引入和使用

    Springboot 缓存@Cacheable 的引入和使用

    @Cacheable是Spring缓存抽象的核心注解,作用是将方法的返回结果缓存起来,本文给大家介绍Springboot缓存@Cacheable的引入和使用,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • 通过实例解析synchronized和lock区别

    通过实例解析synchronized和lock区别

    这篇文章主要介绍了通过实例解析synchronized和lock区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • MyBatis的逆向工程详解

    MyBatis的逆向工程详解

    这篇文章主要介绍了MyBatis的逆向工程详解,详细的介绍了逆行工程的概念和实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论