之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。那么在本章节,我们将通过两种方式,来演示项目部署,分别是:手动部署项目 和 基于shell脚本自动部署。
创建一个简单的项目,结构如下所示
项目运行结果
执行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
mkdir /usr/local/app
cd /usr/local/app
java -jar helloworld.jar
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
nohup Command [ Arg … ][&]
Command
:要执行的命令Arg
:一些参数,可以指定输出文件&
:让命令在后台运行nohup java -jar boot工程.jar &> hello.log &
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &
kill -9 pid
自行创建
自行推送一个简单示例项目即可
yum list git
:列出git安装包yum install git
:在线安装gitgit --version
去验证git的环境
/usr/local
,执行如下指令
git clone 要克隆的远程仓库地址
(然后输入个人的Git账号密码)apache-maven-3.5.4-bin.tar.gz
,自行选择对应版本号在官网下载即可tar -zxvf apache-maven-3.5.4-bin.tar.gz -C 指定目录
在/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是之前配置的,忽略即可
要让配置的环境变量生效,还需要执行如下指令
source /etc/profile
配置本地仓库地址
切换目录
cd /usr/local/apache-maven-3.5.4/conf
编辑setting.xml配置文件
vim setting.conf
在其中增加如下配置,添加本地仓库地址
<localRepository>/usr/local/maven-reposity</localRepository>
同时在<mirrors>
标签中,配置阿里云的私服
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
Shell脚本(shell script),是一种Linux系统中的脚本程序。使用Shell脚本编程跟 JavaScript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了
- 本次测试不作为学习内容,直接使用现成的demo即可
根据上面步骤执行完后,Shell脚本要想正常的执行,还需要给Shell脚本分配执行权限。 由于linux系统是一个多用户的操作系统,并且针对每一个用户,Linux会严格的控制操作权限。接下来,我们就需要介绍一下Linux系统的权限控制
解析当前脚本的权限情况
chmod命令可以使用八进制来指定权限(0 - 代表无, 1 - 表示执行x,2 - 写w, 4 - 读r
权限 | rwx | rwx |
---|---|---|
7 | 读 + 写 + 执行 | rwx |
6 | 读 + 写 | rw- |
5 | 读 + 执行 | r-x |
4 | 只读 | r-- |
3 | 写 + 执行 | -wx |
2 | 只写 | -w- |
1 | 只执行 | --x |
0 | 无 | --- |
举例
chmod 777 bootStart.sh
为所有用户授予读、写、执行权限chmod 755 bootStart.sh
为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限chmod 210 bootStart.sh
为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限注意:
chmod 777 bootStart.sh