Jenkins部署 maven 项目简要说明。
服务在 linux 服务器上,有启停脚本 start.sh 和 stop.sh 和 jenkins.war。
#!/bin/sh
# define variables
JAR_NAME=jenkins.war
PORT=9091
echo "find ${JAR_NAME} to kill before start process."
sh stop.sh
echo "------ begin start ------"
nohup java -jar $JAR_NAME --httpPort=$PORT >/dev/null 2>&1 &
#!/bin/sh
# define variables
JAR_NAME=jenkins.war
PROCESS=`ps auxww | grep ${JAR_NAME} | grep 'java -jar' | grep -v grep`
if [ "$PROCESS" = "" ]; then
echo "process ${JAR_NAME} not exists"
else
SID=`echo $PROCESS | awk '{print $2 }'`
echo "prepare to kill "$PROCESS
echo "begin kill "$SID" ..."
kill -9 $SID
echo "kill successfully"
fi;
# 服务地址
http://ip:port
Jenkins 的安装很简单,在官网下载 jenkins.war,启动即可,可以部署在 tomcat 容器中,也可以直接启动,如下:
# --httpPort 指定服务端口
java -jar jenkins.war --httpPort=9091
安装完成后,按需配置 maven、jdk、ssh 服务器等等,不再赘述,请查阅相关资料。
根据实际需要安装插件,去插件市场下载,市场地址
http://mirror.serverion.com/jenkins/plugins/
访问如下地址,上传插件,安装完毕后重启即可,插件安装可能会有依赖,根据界面提示先安装依赖即可。
http://ip:port/pluginManager/advanced
项目采用 Jenkins 部署,关联 svn 下载代码,使用 maven 构建,构建完成后通过 ssh 工具上传到指定服务器,最后运行指定脚本启动 jar 包。
在 Jenkins 中新建一个 Maven 任务
在任务配置中,找到源码管理,关联 svn 仓库即可
根据需要配置 maven 命令,我们使用先 clean,后 package 即可。(maven须提前在 Jenkins 系统管理—系统配置中配置好,然后此处可以下拉选择)
构建成功后,需要将配置中心文件、微服务 jar 包发布到服务器上,并执行指定的脚本以启动服务,请按需添加即可。
Name 中可下拉 ssh 服务器,请提前在 Jenkins 系统管理—系统配置中的 Publish over SSH 中添加好,不再赘述。
Transfers 配置项说明:
Source files: 待上传文件,可使用通配符
Remove prefix: 上传至远程目录,源文件需要删除的前缀
Remote directory: 待上传服务器的远程目录地址
Exec command: 上传完毕后执行应用服务器对应的脚本
服务器的远程目录及脚本需要提前配置好,创建远程目录,创建 logs 目录,放置脚本,如果有特殊配置文件,请先配置好 config 目录并放入配置文件(也可以尝试用 Jenkins 发布)。
脚本参考如下:
#!/bin/bash
# define variables
DIR=/home/***/app/***/platform-eureka-server/8100
# jenkins
source /etc/profile
export BUILD_ID=dontKillMe
cd $DIR
sh jenkins-start.sh
# 0 express succeed, 1 express failed
#exit 0
#!/bin/sh
# define variables
JAR_NAME=platform-eureka-server-1.0.0.jar
PORT=8100
LOG_FILE=./logs/platform-eureka-server.log
echo "find ${JAR_NAME} to kill before start process."
sh jenkins-stop.sh
echo "------ begin start, see: ${LOG_FILE} ------"
nohup java -Dserver.port=$PORT -jar $JAR_NAME >/dev/null 2>&1 &
echo "${JAR_NAME} started successfully."
# sleep 1s, make sure the process can start
sleep 1s
# it will blocking process
#tail -0f $LOG_FILE
#!/bin/sh
# define variables
JAR_NAME=platform-eureka-server-1.0.0.jar
PORT=8100
PROCESS=`ps auxww | grep ${JAR_NAME} | grep ${PORT} | grep -v grep`
if [ "$PROCESS" = "" ]; then
echo "process ${JAR_NAME} not exists"
else
SID=`echo $PROCESS | awk '{print $2 }'`
echo "prepare to kill "$PROCESS
echo "begin kill "$SID" ..."
kill -9 $SID
echo "kill successfully"
fi;
项目配置好后,点击立即构建即可
可以在控制台查看日志,点击构建记录前面的圆点图标即可