jenkins官网: https://jenkins.io/

jenkins.war 的下载地址

链接:https://pan.baidu/s/1fhlnxpkQwwkIzurGdrqEiA

提取码:nn32

准备环境

linux 服务器一台 (version:7.4 ,bit:64)

服务器安装好 JDK (version:1.8 ,bit:64)

服务器安装好 tomcat (version:8.0.52)

服务器安装好 maven (version:3.5.0)

服务器安装好 svn /git (两个选一个安装,我这里以svn为例)

将下载好的 jenkins.jar 放到 ./tomcat/webapps/ 目录下,并启动 tomcat (jenkins.war可以去官网下)

请保证上述环境都已准备完毕…

登录jenkins

启动 tomcat 后,在浏览器输入:localhost:8080/jenkins (我的tomcat使用的是 8080 端口)

jenkins第一次启动时会将密钥存在一个文件中,当第一次登录时,需要进行验证。我们将页面中提示的路径打开,将里面的内容填入图中的文本框中,然后我们点 Continue

初始化中,让子弹飞一会~

这个页面提示你安装一些插件,左边是 jenkins 推荐安装的插件,右边是告诉你可以自已选择哪些装。

Tips: 如果没有特别要求,可以选择左边的窗口,后期需要安装其它插件的话,也可以再到 jenkins 页面安装

楼主这里选择左边 jenkins 推荐的一些插件,如图上,正在安装中…

Tips: 这个过程需要联网!

创建一个超级管理员用户,信息请自行填写。Tips: 后续登录 jenkins需要使用到的登录信息

访问 jenkins 的路径配置,如果无特殊要求,默认就好。

jenkins 已经准备就绪,我们点 start using jenkins 就可以看到它的管理界面了

安装Maven插件

jenkins第一次创建 maven项目,需要先安装maven插件,否则在创建项目的时候没有构建Maven项目这一选项

在主页面选择 系统管理,再选择插件管理

在输入框中输入:Maven Integration,勾选,并安装它

配置全局环境

在主页面选择 系统管理,再选择全局工具配置,我们进行,jdk、maven 的配置

以下配置的路径全都是服务器该软件的安装路径,请不要配置错

创建一个maven项目

在主页面选择New任务,开始创建一个项目,并在弹出的页面方框中输入你的项目名称,输入名称后,我们选择 “构建maven项目”,点 OK,进入下一步。

简单的说一下,如何让当前项目与你 svn 或 git 上的代码进行关联

在下图中选择 Git 或 Subversion (我以svn为例,git差不多)

Repository URL 中 输入你的代码地址

Credentials 是拉这个代码需要的账号和密码,点击右边的 Add可以添加(只需要输入username 和 password 这两项就行了)

这里不得不提一下 Build Triggers,有时候项目需要自动触发,比如说提交代码后触发、定时触发等等,都需要在这里配置。

这里留个todo,有时间我一定会补上!

指定项目的构建信息

Root POM 指定项目的 pom.xml 的路径

Goals and options 指定构建时所附加的参数

clean install -Pprod -Dmaven.test.skip=true

clean install 是maven的常用命令,不再解释

-P 是指定启动的环境,我所指定的是prod,表示加载 application-prod.yml 里面的配置(多配置前面博客中有提到)

-Dmaven.test.skip 指在编译、打包时不执行测试用例,也不编译测试用例类

1

2

3

4

执行自定义的脚本

jenkins 把项目构建完成后,生成的 war/jar会在/root/.jenkins/workspace/项目名/项目名/target/目录下,我们利用命令将 war/jar 复制到指定目录下,然后执行 sheel脚本进行发布

BUILD_ID=DONTKILLME

cp /root/.jenkins/workspace/offline-app-order/offline-app-order/target/offline-app-order-1.0-SNAPSHOT.jar /usr/local/projects/offline-app-order/application-temp.jar

sh /usr/local/projects/offline-app-order/run-app.sh

1

2

3

第一行:防止 jenkins 构建完成后杀掉 sheel 进程,导致自动部署失败

第二行:将 jenkins 打的包复制到服务器的 指定位置,并重命名为 application-temp.jar

第三行:执行一个自己写好的 sheel 脚本(此脚本完成杀进程,重启进程的工作) - 该脚本放在本文的最后!

1

2

3

重要:配置完成后,点击Save将所有配置进行保存!

构建项目

上面的操作完成后,在主页可以看到刚创建好的项目,我们点这个项目名称,进入项目详情

点击立即构建按钮,开始构建项目

构建开始时,可以在左下角看到条目,也可以点开条目,看构建日志

红色圆圈:构建失败

蓝色圆圈:构建没问题,脚本执行也没问题,但是不保证项目能启起来 (说不定有其它服务器问题)

查看构建日志(无论怎么构建失败的,都可以进去看日志,日志里面会写的很详细)

最后,分享一个我服务器上的脚本(run-app.sh)

#!/bin/sbin

present_time=`date +%Y%m%d%H%M%S`

echo "current time: ${present_time}"

temp_jar_name=application-temp.jar

normal_jar_name=offline-app-order.jar

jar_path=/usr/local/projects/offline-app-order/

log_file=/usr/local/projects/offline-app-order/logs/application-run.log

LANG=UTF-8

echo "=============== publish =============="

echo "step 1: stop application"

pid=`ps -ef | grep ${normal_jar_name} | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

echo "kill -9 ${normal_jar_name}, pid is: ${pid}"

kill -9 $pid

fi

echo "step 2: backup application"

#mv ${jar_path}/${normal_jar_name} ${jar_path}/${normal_jar_name}-${present_time}

rm -rf ${jar_path}/${normal_jar_name}

echo "step 3: replace application-temp.jar to application.jar"

mv ${jar_path}/${temp_jar_name} ${jar_path}/${normal_jar_name}

cd ${jar_path}

echo "step 4: chmod application"

if [ -f "${normal_jar_name}" ]

then

echo "chmod 777 to ${normal_jar_name}"

chmod 777 ${normal_jar_name}

fi

cd ${jar_path}

echo "step 5: start application"

nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &

echo "publish is ok"

#echo "nohup java -jar ${normal_jar_name} > ${log_file} 2>&1 &"

更多推荐

jenkins教程菜鸟_使用 jenkins 自动化部署应用(写给新手的)