操作步骤如下:
1). 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中(IDEA add commit push)
2). 在Linux中安装jdk,mysql(如果要使用linux的MySQL数据的话),Git
java -version
git --version
在想要存放项目代码的地方新建文件夹(文件夹名字为项目名,比如hello)并CD到hello文件夹下,手动克隆代码,如从gitee克隆代码
cd /usr/local/XXX
git clone XXX.git
3). 在Linux中安装maven到/usr/local目录
maven安装包下载地址 Index of /dist/maven/maven-3http://archive.apache.org/dist/maven/maven-3/
将压缩包上传到/usr/local目录
解压缩到该目录
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
在/etc/profile配置文件中配置环境变量
vim /etc/profile
修改配置文件,进入到命令模式,按G切换到最后一行,按a/i/o进入插入模式,然后在最后加入如下内容 :
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
然后按ESC进入到命令模式,输入 :wq 保存并退出
要想让配置的环境变量生效,还需要执行如下指令:
source /etc/profile
修改maven的settings.xml配置文件,配置本地仓库地址
A. 切换目录
cd /usr/local/apache-maven-3.5.4/conf
B. 编辑settings.xml配置文件
vim settings.xml
在其中增加如下配置,配置本地仓库地址:
<localRepository>/usr/local/repo</localRepository>
并在settings.xml中的<mirrors>标签中,配置阿里云的私服:
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
=====================================================================
4). 编写Shell脚本(拉取代码、编译、打包、启动)
建个txt,名字和后缀名改为bootStart.sh,输入以下内容。该文件的意思:停止原运行中的项目,从远程仓库拉取最新的项目代码,使用maven打包拉下来的项目,执行项目,并输出日志到target目录下。
#!/bin/sh
echo =================================
echo Automated deployment script startup
echo =================================
#停止原运行中的项目
echo Stop the original running project
APP_NAME=项目名字比如hello项目这里写hello
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 Prepare to pull the latest code from GIT
#打开项目所在的文件夹
cd /usr/local/项目文件夹比如hello项目这里写hello
echo Start pulling the latest code from GIT
#本地与远程不同的话,强制更新为远程
git reset --hard
#开始从远程拉取
git pull
echo Code pull completed
#执行打包命令
echo Start packing
output=`mvn clean package -Dmaven.test.skip=true`
#打开打包之后存放jar包的文件夹
cd target
echo Start project
#通过nohub方式启动jar包,并输出日志到jar所在文件夹同级别的日志文件
nohup java -jar 项目名字-1.0-SNAPSHOT.jar &> 日志名字.log &
echo Project launch completed
修改相关中文标注的地方为具体项目信息。
上传到linux,比如上传到/usr/local/sh
5). 为用户授予执行Shell脚本的权限
上传成功后授权,授权让任何用户都可 读写执行 该sh文件
cd /usr/local/sh
chmod 777 bootStart.sh
6). 执行Shell脚本
cd /usr/local/sh
./bootStart.sh
=================================================================
完成