一.jenkins安装下载
(1).所需环境:window服务器(带加密客户端),jdk1.8,maven
(2).下载方法:下载war包
下载地址:https://jenkins.io/download/
(3).安装方法:采用的是war包直接运行的方式,使用管理员权限启动cmd命令行,然后java -jar jenkins.war --httpPort=8080即可启动jenkins服务(启动后命令行窗口不要关!),启动成功后最后一行会提示:Jenkins is fully up and running。
在服务器浏览器上输入localhost:8080 登录jenkins,第一次登录的时候需要设置用户名、密码(初始密码会有提示在哪保存)、安装插件等,插件按推荐的安装。安装完成后就会进入jenkins主界面。
等待一段时间就进入了Jenkins首页
二.Jenkins环境配置
全局工具配置(目录:系统管理→全局配置管理)
(1).配置JDK,点击新增JDK,将自动安装复选框的对勾去除,手动添加别名和JDK安装路径.
(2).配置mavan.
填写Maven 配置
三.JAVA项目打包部署
(1)创建一个maven工程
Branch:字符变量,可以由手动传入选择拉取哪个分支的源代码
@HEAD:表示拉取svn版本库中最新的代码
(3)Maven打包项目
(4)打包成功后,上传到服务器发布项目
先配置ssh server(目录:系统管理→系统配置)
a.配置上传远程服务器的地址,账号密码信息
b.参数说明
Name:远程服务器的别名
Source files: 上传的jenkins工作空间的项目
Remove prefix : 忽略项目前缀
Remote directory: 上传到远程服务器的目录
Exec command: 上传完成后执行的远程服务器脚本
执行的shell脚本:
#!/bin/sh
#定义jar包名称
frontUser=hetcoinEx-user-server8001-SNAPSHOT.jar
#定义jar包上传目录
uploadDirectory=/usr/jars
#定义date变量
date=$(date +%Y%m%d_%H%M%S)
#定义旧文件备份父目录(带时间格式文件上一级)
backupDirectory=/usr/local
#定义新文件拷贝目录
copyDirectory=/usr/local
#定义jar包前缀
jarPackage=jar_bak
备份文件到某个目录
#创建目录 使用mkdir命令
#首先判断目录是否存在,如果不存在则创建,存在则不再创建
cd
b
a
c
k
u
p
D
i
r
e
c
t
o
r
y
i
f
[
!
−
d
"
.
/
backupDirectory if [ ! -d "./
backupDirectoryif[!−d"./jarPackage_${date}" ]
then
#echo “目录不存在”
mkdir KaTeX parse error: Expected group after '_' at position 11: jarPackage_̲{date}
mkdir jar_bak_
d
a
t
e
i
f
[
−
d
"
.
/
{date} if [ -d "./
dateif[−d"./jarPackage_${date}" ]; then
echo “===mkdir directory fail”
exit 1
fi
echo “===mkdir directory success”
fi
关闭frontUser服务########################################################
P_ID=ps -ef | grep -w $frontUser | grep -v "grep" | awk '{print $2}'
if [ “$P_ID” == “” ]; then
echo “===frontUser process not exists or stop success”
else
kill -9 KaTeX parse error: Expected 'EOF', got '#' at position 7: P_ID #̲检测该进程是否已停止,未停止则…P_ID" != “” ]; then
echo “===frontUser process stop fail”
exit 0
else
echo “===frontUser killed success”
fi
fi
备份旧文件到指定目录
mv
f
r
o
n
t
U
s
e
r
.
/
frontUser ./
frontUser./jarPackage_
d
a
t
e
i
f
[
!
−
f
"
.
/
{date} if [ ! -f "./
dateif[!−f"./jarPackage_${date}/hetcoinEx-user-server8011-SNAPSHOT.jar" ]
then
#备份失败,终止执行
echo “--------old frontUser backup fail--------------”
exit 0
else
echo “--------old frontUser backup completed--------------”
fi
拷贝新文件到指定目录
cp
u
p
l
o
a
d
D
i
r
e
c
t
o
r
y
/
uploadDirectory/
uploadDirectory/frontUser
c
o
p
y
D
i
r
e
c
t
o
r
y
/
e
c
h
o
"
−
−
−
−
−
−
−
−
n
e
w
f
r
o
n
t
U
s
e
r
c
o
p
y
c
o
m
p
l
e
t
e
d
−
−
−
−
−
−
−
−
−
−
−
−
−
−
"
i
f
[
!
−
f
"
.
/
copyDirectory/ echo "--------new frontUser copy completed--------------" if [ ! -f "./
copyDirectory/echo"−−−−−−−−newfrontUsercopycompleted−−−−−−−−−−−−−−"if[!−f"./copyDirectory/$frontUser" ]
then
#拷贝失败,终止执行
echo “--------old frontUser backup fail--------------”
exit 0
else
echo “--------old frontUser backup completed--------------”
fi
暂停2-3秒
sleep 3
启动frontUser服务
echo “--------frontUser start--------------”
nohup java -jar
c
o
p
y
D
i
r
e
c
t
o
r
y
/
copyDirectory/
copyDirectory/frontUser
P_ID=ps -ef | grep -w $frontUser | grep -v "grep" | awk '{print $2}'
if [ “$P_ID” != “” ]; then
echo “--------frontUser start success,pid is $P_ID--------------”
else
echo “frontUser start fail”
fi
exit 0
配置完成后,构建项目
构建的svn分支
查看结果