一. jenkins的作用
二.安装
官网下载地址: https://www.jenkins.io/download/
本人采用下载war,上传服务器直接运行方式.
nohup java -jar Jenkins\ 2.346.3\ LTS.war &
Jenkins初始化文件路径在下图中: 初始化密码也如图所示
初始化密码: 如上图
访问 ip:8080
(注意服务器提供商防火墙和系统防火墙放行)
一系列傻瓜安装后
三.maven安装
也可以在jenkins安装后,通过jenkins自动配置安装
我们需要借助jenkins自动拉取远程仓库或私服中的代码做持续部署.那么就要下载maven管理本地jar供以java代码运行.
需要提前配置好java环境变量
四.git安装
也可以在jenkins安装后,通过jenkins自动配置安装
Jenkins需要拉取测试远程仓库代码
yum install -y git
五
六. jenkins官方中文文档
七. 集成
利用jenkins 集成maven快速拉取部署项目
安装完毕后 配置全局环境(注意gittee需要安装插件并配置全局环境
)
git凭证账户配置
全局maven配置
构建item项目
gitee配置
pom配置
八.配置自动化发布测试
现在大多数代码托管平台不支持http 账号密码拉取。建议采用ssh拉取
需要现在jenkins的服务器上安装git,然后配置jenikins全局配置ssh密钥,在github上配置公钥
回到item中配置
预期传输超时时间
九.端口冲突解决
添加上传前置动作.删除之前jar及其进程.
使用了public over ssh插件需要在执行命令之前
#刷新配置
source /etc/profile
# 防止jenkins杀死未执行完毕的sh脚本
BUILD_ID=dontKillMe
#执行脚本,删除jar包,杀死进程
sh /root/jarpackage/vector-start.sh vector-admin
一般可以通过执行远程shell脚本. shell脚本编译好删除的内容及项目进程
#!bin/bash
# 删除项目jar
rm -rf /root/jarpackage/vector-admin.jar
if [ -z $1 ];
then
echo "The args cannot be empty"
else
appname=$1
fi
# 执行脚本传入的参数是项目名称 ./resetJar.sh xxxx项目名
echo "arg:$1"
# 过滤出正在执行的jar程序的pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
# 如果pid为空,不执行杀进程
if [ -z $pid ];
then
echo "$appname not started!"
else
kill -9 $pid
echo "$appname stop success!"
fi
十.构建触发器
目的为了解决代码变动自动构建.(不常用,总不能提交一次构建一次.
)
若一些代码托管平台没有回调钩子.我们可以通过jenkins的定时任务回调代码托管平台
身份验证令牌,让远程仓库回调jenkins方式
安装插件
设置回调Jenkins令牌
Use the following URL to trigger build remotely: JENKINS_URL/job/vectorProject-server/build?token=TOKEN_NAME
或者 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.
十一.邮件通知
告知相关人员构建时的情况.
jenkins全局配置