如何在服务端部署SpringBoot项目

如何在服务端部署

Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单,可以将Spring Boot项目打包成独立的jar包来运行,也可以单独打包成war包部署到Tomcat容器中运行,如果大规模的部署Jinkins是比较优秀的选择。
现在Maven、Gradle已经成了我们日常开发必不可少的构建工具,使用这些工具很容易地将项目打包成jar或者war包。

mvn clean package -Dmaven.test.skip=true
  1. mvn clean package其实是两条命令,mvn clean是清除项目target目录下的文件,mvn package打包命令。两个命令可以一起执行。

  2. -Dmaven.test.skip=true:排除测试代码后进行打包。

什么是上线、部署?

上线是指将开发完成的软件、网站或应用程序部署到生产环境中,使用户可以访问和使用的过程。在软件开发过程中,上线是一个重要的阶段,意味着项目从开发阶段转入实际运行阶段。
项目部署常见的方式有哪些?

  1. 手动部署,适用于小型项目或者临时测试的情况。开发人员手动将项目文件和代码复制到生产服务器上。使用java -jar 命令后台启动项目
  2. 自动化脚本部署:编写部署Shell脚本,自动化地将代码和配置文件部署到生产服务器上。
  3. CI/CD(持续集成/持续部署):通过持续集成和持续部署工具(如Jenkins、docker、k8s、GitLab CI/CD等)实现自动化部署。在代码提交或合并到特定分支时,自动触发构建、测试和部署流程。
  4. 灰度发布:将新版本部分地、逐步地发布给用户,以降低上线风险。可以通过逐步扩大用户范围,监测新版本的稳定性和性能。
方式一:在本地打包项目,将项目代码上传到服务器,并在服务器运行 使用nohup java –jar xxx.jar &命令来后台运行
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log &
  1. nohup:表示在后台运行程序,即使关闭终端,程序也会继续运行。
  2. java -jar reggie_take_out-1.0-SNAPSHOT.jar:使用Java运行名为"reggie_take_out-1.0-SNAPSHOT.jar"的程序。
  3. &>:将标准输出(stdout)和标准错误输出(stderr)合并,并重定向到指定的文件。
  4. reggie_take_out.log:指定输出文件的名称为"reggie_take_out.log"。
  5. &>:将标准输出(stdout)和标准错误输出(stderr)合并,并重定向到指定的文件。
  6. reggie_take_out.log:指定输出文件的名称为"reggie_take_out.log"。
  7. &:表示将程序放到后台运行。
方式二:使用git+maven+脚本从git拉取代码,并编译运行。

1). 在服务器中安装jdk、git、maven、MySQL,使用git clone命令将git远程仓库的代码克隆下来

A. 确认JDK环境

在这里插入图片描述

B. 确认Git环境
在这里插入图片描述

C. 确认Maven环境
在这里插入图片描述
D. 将我们开发完成的代码推送至远程仓库,并在服务器中克隆下来

#创建java代码存放目录
mkdir -p /usr/local/javaapp

#切换目录
cd /usr/local/javaapp

#克隆代码 , 需要使用自己的远程仓库
git clone https://gitee.com/ChuanZhiBoKe/reggie_take_out.git 

在这里插入图片描述
2). 将reggieStart.sh文件上传到服务器,通过chmod命令设置执行权限
在这里插入图片描述

2.1). 脚本内容如下

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=reggie_take_out

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/javaapp/reggie_take_out

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar reggie_take_out-1.0-SNAPSHOT.jar &> reggie_take_out.log &
echo 项目启动完成


3). 执行reggieStart.sh脚本文件,自动部署项目

在这里插入图片描述

执行完shell脚本之后,我们可以通过 ps -ef|grep java 指令,查看服务是否启动。
在这里插入图片描述

4). 关闭防火墙访问系统测试

http://{ip}:{端口号}

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows上部署Spring Boot和Nacos,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Java开发工具包(JDK)和Maven构建工具。您可以从官方网站下载并安装它们。 2. 下载并安装Nacos服务端。您可以从Nacos的官方网站下载最新版本的可执行文件,并按照官方文档提供的说明进行安装。 3. 创建一个Spring Boot项目,可以使用IDE(如IntelliJ IDEA)或通过命令行创建。确保您已经设置好项目的基本信息,包括项目名称、包名等。 4. 配置项目的pom.xml文件,添加Spring Boot和Nacos相关依赖。根据您提供的引用,您需要添加以下依赖项: ```xml <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2021.1</version> <exclusions> <exclusion> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.0.3</version> </dependency> ``` 5. 创建一个配置文件(例如application.yml或bootstrap.yml)并配置Nacos相关数据,包括注册中心地址。根据您提供的引用,您可以在bootstrap.properties文件中添加以下配置: ```properties spring.application.name=nacos-config-example spring.cloud.nacos.config.server-addr=127.0.0.1:8848 ``` 6. 开发您的Spring Boot应用程序,并确保通过Nacos将其注册到Nacos注册中心。您可以使用@NacosDiscoveryClient注解来实现。 7. 构建和打包您的应用程序,生成可执行的jar文件。 8. 启动Nacos服务端,并使用以下命令运行您的应用程序: ```shell java -jar your-application.jar ``` 以上是在Windows上部署Spring Boot和Nacos的基本步骤。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值