首先要在自己的服务器上安装jdk,maven,git,我的服务器是虚拟机装的centos系统。
查看jdk安装的路径可以用which java命令
maven的安装路径在 /root/maven/maven
git的安装路径在 /usr/share/git-core
全局工具配置
安装插件
打开系统管理--》插件管理,选择 可选插件,勾选中 Maven Integration 和 Publish Over SSH,点击 直接安装
添加SSH Server
SSH Server 是用来连接部署服务器的,用于在项目构建完成后将你的应用推送到服务器中并执行相应的脚本。
打开 系统管理 -> 系统配置,找到 Publish Over SSH 部分,选择新增
点击高级展开配置,填写如下配置
点击test,保存配置。
添加凭据
凭据 是用来从 Git 仓库拉取代码的,打开 凭据 -> 系统 -> 全局凭据 -> 添加凭据
配置私钥
部署服务器的准备工作
在部署服务器上,需要一些准备工作:
1、创建文件夹 /home/wuyue/jenkins-in,其中wuyue 是前面在配置 SSH Server 时指定的用户名
2、创建脚本 /home/wuyue/jenkins-in/deploy.sh,将如下内容复制进去
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/bin/java
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DATE=$(date +%Y%m%d%H%M)
JENKINS_IN=/home/wuyue/jenkins-in
DIR=/data/workspace/segon-test
JARFILE=segon-test.jar
if [ ! -e $JENKINS_IN/$JARFILE ]; then
exit2
fi
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
#如果程序已经在运行,就杀掉进程
pid=`ps -ef | grep $JARFILE | grep -v"grep" | awk'{print $2}'`
if ["$pid" !="" ]; then
echo"App is running and pid = $pid, will kill it"
kill -9 $pid
fi
#备份旧的应用
mv $JARFILE backup/$JARFILE.$DATE
#将新的应用移动到工作目录
mv -f $JENKINS_IN/$JARFILE .
#运行新的应用
nohup java -jar $DIR/$JARFILE > out.log2>&1 &
#等待一段时间,然后输出log,检查是否启动成功
if [ $? =0 ];then
sleep10
tail -n50 out.log
fi
#只保留最新的5个备份
cd backup/
ls -lt | awk'NR>5{print $NF}' | xargs rm -f
新建 Maven 任务
新建一个任务
源码管理
在源码管理中,选择Git,填写仓库地址,选择之前添加的凭证
git地址我写的是gitblit的地址,当时报了一个没权限的错误,是因为我服务器的防火墙开了,关了就行了,并且不能用ssh的那个地址。
把下边的勾选上。
Build
在Build中,填写 Root POM 和 Goals and options,也就是你构建项目的命令
Post Steps
选择Run only if build succeeds,添加 Post 步骤,选择 Send files or execute commands over SSH。
name 选择前面添加的 SSH Server,
Source files 要推送的文件,
Remove prefix 文件路径中要去掉的前缀,
Remote directory 要推送到目标服务器上的哪个目录下
Exec command 目标服务器上要执行的脚本
上面填写的 jenkins-in以及jenkins-in/deploy.sh 都是在 部署服务器的准备工作 步骤准备好的,点击应用保存。
这样一个项目的构建已经完成了。喜欢请关注“蛋皮皮”公众号
网友评论