Shell脚本在Java项目部署中的使用

1,153 阅读2分钟

「这是我参与2022首次更文挑战的第19天,活动详情查看:2022首次更文挑战

1、前言

​ 在上一篇的分享中,为大家分享了Jenkins的使用(使用Jenkins实现服务的自动化部署 - 掘金 (juejin.cn))。使用Jenkins可以将我们远程仓库的代码打包成jar/war包。但jar包还是要上传到目标服务器,同时去启动项目的。本篇就为大家分享下,如何使用Shell脚本来启动Java项目以及在idea中使用Jenkins插件。

2、Shell脚本实现Java项目的启动

# 重启服务
# param $1: 服务名称 $2: 服务数量

# 引入jdk
export JAVA_HOME=/data/jdk1.8.0_151
export PATH=$PATH:/data/jdk1.8.0_151/bin
echo $PATH

count=1

#获取当前时分秒作为日志备份文件名
current=`date "+%Y-%m-%d_%H%M%S"`

if [ "$2" = "" ]; then
        count=1
else
        count=$2
fi


if [[ "$1" = "all" ]] || [[ "$1" = "" ]]; then
        echo '停止服务...'
        kill -9 $(ps -ef|awk '/-0.0.1-SNAPSHOT-database.jar/ {print $2}')

        echo '删除日志...'
        rm -rf /data/FMS-CLOUD/logs/*.log* 

        for server in {cloud-zuul,cloud-webview,cloud-public,cloud-system}
        do
                for((i=1; i<=$count; i++))
                do
                        echo '启动'$server'服务第'$i'次...'
                        cd /data/trunk/$server/target
                        #置顶JVM虚拟机内存分配的大小
                        nohup java -server -Xms256m -Xmx256m -jar $server-0.0.1-SNAPSHOT-database.jar --spring.profiles.active=test >/data/logs/$server$i.log 2>&1 & 
                        sleep 60s
                done
        done
	echo '启动基础服务完成'
	for server in {cloud-bond,cloud-buyout,clearing,cloud-connect}
        do
                for((i=1; i<=$count; i++))
		do {
                        echo '启动'$server'服务第'$i'次...'
                        cd /data/FMS-CLOUD/trunk/$server/target
                        nohup java -server -Xms64m -Xmx128m -jar $server-0.0.1-SNAPSHOT-database.jar --spring.profiles.active=test >/data/FMS-CLOUD/logs/$server$i.log 2>&1 &
                       #tail -f /data/FMS-CLOUD/logs/$server$i.log
                       #sleep 20s
		   } &
                done
        done
	sleep 150s

else
        echo '停止服务...'
        kill -9 $(ps -ef|awk '/'$1'-0.0.1-SNAPSHOT-database.jar/ {print $2}')

	echo '日志备份...'
        cp /data/FMS-CLOUD/logs/$1'1.log' /data/FMS-CLOUD/baklogs/$1$current.log

        echo '删除日志...'
        rm -rf /data/FMS-CLOUD/logs/$1.log*

        for((i=1; i<=$count; i++))
        do 
                echo '启动服务第'$i'次...'
                cd /data/FMS-CLOUD/trunk/$1/target
                nohup java -server -Xms256m -Xmx256m -jar $1-0.0.1-SNAPSHOT-database.jar --spring.profiles.active=test >/data/FMS-CLOUD/logs/$1$i.log 2>&1 &
                #sleep 10s
           
	done

fi

echo '服务启动完成...'

3、idea中使用Jenkins插件

首先我们需要在idea的插件市场中搜索安装Jenkins Control这个插件。安装完成后,我们配置Jenkins的地址与密钥。

Shell-02.png

这里特别需要注意的是,password这里要输入token而不是Jenkins的登陆密码,输入登陆密码是无效的。然后,点击当前登录用户->设置->API Token,添加新Token即可。

Shell-03.png

配置完成后的效果:

Shell-04.png

这个时候,我们就可以选中项目然后,点击build on jenkins进行构建了。构建完成后,可以选中项目->右键->show last successful log,查看构建日志。

Shell-05.png

好了、本期就先介绍到这里,有什么需要交流的,大家可以随时私信我。😊