手动部署
步骤
1.在idea中将文件项目进行打包
2.自定义一个文件目录,上传到Linux
3.使用 java -jar +jar包名就可以进行运行
注意,如果需要启动该项目,需要确定所需的端口是否打开
采用这种方式,程序运行的时候会出现霸屏,并且会将日志信息输出到控制台,这样会影响使用,并且SSh窗口退出后,外部就不能访问了
解决方式:
nohup命令,指不挂断语法,格式 nohub Command[Arg][&]
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
例如: nohub java -jar boot工程名.jar &> hello.log & //后台启动Java-jar命令,将日志输出到当前文件夹的hello.log文件
想要关闭boot进程,只需找到进程号,ps -ef | grep java,然后通过 kill -9 进程号,就能关闭boot进程
通过shell脚本部署
操作步骤
1.在Linux安装git
yum list git //查询git版本
yum install git //安装
#使用Git克隆代码
cd /usr/local/
git clone 仓库地址
2.在Linux安装maven
上传解压
配置环境变量
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile //重新加载资源
mvn -version //查看安装情况
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
<localRepository>/usr/local/repo</localRepository>//设置maven的本地仓库
3.编写Shell脚本(拉取代码、编译、打包、启动)
在/usr/local目录下创建一个文件夹
创建一个文件,vim bootstart.sh
将以下的内容复制粘贴进去,保存退出
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=helloworld
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/helloworld
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
4.为用户授予执行Shell脚本的权限
Linux的权限:r读权限,w写权限,x执行权限
文件调用权限分为:文件所有者(Owner),用户组(Group),其他用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录权限
chmod命令进行shell脚本授权
5.执行shell脚本
sh 文件名.sh
设置静态ip
修改文件,/etc/sysconfig/network-scripts/ifcfg-ens33,安装的是Centos7,使用的Finallshell,名称就是ens33
修改完成后需要重启网络服务
systemctl restart network,使用新网络的时候,就网络连接的Finalshell会断开,使用新的ip进行连接即可