设为首页 加入收藏

TOP

项目部署到Linux (一)
2023-07-23 13:28:03 】 浏览:35
Tags:项目部 Linux

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

项目部署

之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。那么在本章节,我们将通过两种方式,来演示项目部署,分别是:手动部署项目 和 基于shell脚本自动部署。

3.1、手动部署项目

3.1.1、在IDEA中开发SpringBoot项目并打包成jar包

创建一个简单的项目,结构如下所示

file

项目运行结果

file

执行package指令,进行打包操作,将当前的SpringBoot项目,打包成jar包

操作步骤

  • Step1
 <build>
        <!--指定jar的名字-->
        <finalName>helloworld</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  • Step2
# 清理、打包 跳过测试
mvn clean package -Dmaven.test.skip=true
  • Step3
# 运行
java -jar xxx.jar
  • Step4

浏览器访问:http://localhost:8080/hello

3.1.2、将jar包上传到Linux并运行

将打好的jar包上传至Linux服务器的 /usr/local/app 目录下

  • mkdir /usr/local/app

  • cd /usr/local/app

启动SpringBoot项目

  • 由于我们的项目已经打成jar包上传上来到Linux服务器,我们只需要运行这个jar包项目就启动起来了,所以只需要执行如下指令即可:
  • java -jar helloworld.jar
  • 运行结果

file

PS

由于前面安装的Tomcat在启动时,会占用端口号8080,而当前springboot项目我们没有配置端口号,默认也是8080,所以我们要想启动springboot项目,需要把之前运行的Tomcat停止掉

开放端口,确保端口对外开放,可以访问SpringBoot项目

firewall-cmd --zone=public --list-ports

file

如果防火墙没有开放对应的端口,还需要先开放端口

  • firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • firewall-cmd --reload

访问测试

http://192.168.222.135:8080/hello

file

成功运行项目后的问题

当前我们项目启动的这个窗口被霸屏占用了,如果我们把这个窗口关闭掉(或ctrl+c),当前服务也就访问不到了

3.1.3、手动部署项目优化

解决上述霸屏问题的解决方法就是让部署的项目在后台运行

这个时候我们需要使用到linux中的一个命令 nohup ,接下来,就来介绍一下nohup命令

  • nohup命令:英文全称 no hang up(不挂断),用于不挂断地运行指定命令,退出终端不会影响程序的运行

  • 语法格式: nohup Command [ Arg … ][&]

  • 参数说明:

Command:要执行的命令

Arg:一些参数,可以指定输出文件

&:让命令在后台运行

  • 举例:

nohup java -jar boot工程.jar &> hello.log &

上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件

综上所得,要想让当前项目在后台运行,就可以使用以下命令

nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &

file

这样的话,我们的项目就已经启动成功了,我们可以通过ps指令,查看到系统的进程

file

接下来,我们再次访问我们的项目,来看看服务是否可用

file

这时候可以查看以下hello.log文件是否正常输出日志

停止项目

直接杀死进程:kill -9 pid

file

3.2、基于Shell脚本自动部署

3.2.1、介绍

前面介绍的项目部署是手动部署,也就是部署过程中的每一步操作都需要我们手动操作。接下来,我们需要再讲解一下项目的自动部署,从而来简化项目部署的操作,那么我们先来整体上了解一下项目自动部署的流程及操作步骤

file

具体操作步骤如下

①、在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中

②、在Linux中安装Git,克隆代码

③、在Linux中安装maven

④、编写Shell脚本(拉取代码、编译、打包、启动)

⑤、为用户授予执行Shell脚本的权限

⑥、执行Shell脚本

3.2.2、推送代码到远程仓库

1)创建远程仓库

自行创建

2)推送代码到远程仓库

自行推送一个简单示例项目即可

3.2.3、Git操作

1)Git软件安装

通过yum命令在线安装git,执行如下指令

  • yum list git:列出git安装包
  • yum install git:在线安装git

通过上述指令,安装好git之后,我们就可以通过git --version去验证git的环境

file

2)Git克隆代码

先切换到指定的目录,如/usr/local,执行如下指令

git clone 要克隆的远程仓库地址(然后输入个人的Git账号密码)

3.2.4、Maven安装

1)官网下载Maven的压缩包

如apache-maven-3.5.4-bin.tar.gz,自行选择对应版本号在官网下载即可

2)解压Maven压缩包

自行解压到指定目录即可

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C 指定目录

3)配置环境变量

在/etc/profile配置文件中配置环境变量

vim /etc/profile

增加如下内容

MAVEN_HOME=/usr/local/apache-maven-3.5.4/
PATH=$JAVA_HOME\bin:$PATH:$MAVEN_HOME\bin
export JAVA_HOME PATH MAVEN_HOME

PS:这里面的JAVA_HOME是之前配置的,忽略即可

file

要让配置的环境变量生效,还需要执行如下指令

source /etc/profile

4)修改maven的settings.xml配置文件

配置本地仓库地址

切换目录

cd /usr/local/apache-maven-3.5.4/conf

编辑setting.xml配置文件

vim setting.conf

在其中增加如下配置,添加本地仓库地址

/usr/local/maven-reposity

file

同时在 标签中,配置阿里云的私服

<mirror> 
    <id>alimaven</id> 
    <mirrorOf>central&l
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇机器硬件监控,最简单的方案,没.. 下一篇ubuntu安装常用软件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目