1.新建一个自由风格的项目

我们一项一项来
2.设置源码管理

1 2 3 4 5 |
我随便再github上拉了一个项目,并且我采用的验证方式是账号密码 如果你想通过私钥来验证可以进行如下操作: 添加ssh密钥对,点击Add→Jenkins,选择SSH Username with private key,勾选Enter directly |

1 2 3 4 5 6 |
1.登陆Jenkins服务器(一定要是jenkins所在服务器),进行如下操作 ssh-keygen -t rsa cat /root/.ssh/id_rsa 将私钥内容上传或粘贴至上图Key的位置,Username你自己命名,(如果你是本地自建仓库,写你自建的账号的用户名即可,这样好区分) |
2. 将公钥内容粘贴至github/gitlab对应位置


记得保存
3.开始构建


构建成功
4.查看工作区文件

1 |
工作区里存放了项目所有文件 |
target目录里存放了打包后的war文件

关于构建状态jenkins里是用天气来标识的,可以点击这里的图例来查看

5.构建完成后部署到Tomcat或者远程机器,这里我演示部署到Tomcat
构建后操作(构建后操作用到了Deployment to content插件)


配置连接tomcat 发布war包
<1>这里先要去配置下tomcat的账号和密码
vim /opt/apache-tomcat-7.0/conf/tomcat-users.xml
1 2 3 4 5 6 7 |
找到角色授权那块 ,粘贴进去 <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="shooter" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/> |
然后试登录下,看下用上面的账号和密码是否可以登录


没有问题,接下来配置jenkins


配好后保存 ,然后点击立即构建,这回构建完成后,jenkins就会把构建好的war包发布到,我们上面那个url地址的tomcat上
1 |
发布完成后访问url为:http://192.168.66.179:8080/tank |

6.钩子程序
6.1 通知

1 2 |
出发远程构建: 意思是什么呢,用我们指定的这个url,来触发远程构建,下来看看他官方给出的说明的翻译 |

那么我们来构建一下这个url
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
http://192.168.6.121:8080/job/application-tank/build?token=TOKEN_NAME or http://192.168.6.121:8080/job/application-tank/buildWithParameters?token=TOKEN_NAME 只有最后的这个 TOKEN_NAME是我们要定义的 可变得。 那么我们在上面的身份令牌输入框里写,shooter,那么他的外部触发命令就为 http://192.168.6.121:8080/job/application-tank/build?token=shooter or http://192.168.6.121:8080/job/application-tank/buildWithParameters?token=shooter |

那么我们在外部浏览器访问这个url,看看他是否会自动开始构建
执行:

可以看到已经开始构建:

6.2 钩子程序(SVN)
1.钩子程序,说白了就是,不用你登录就可以执行一套 构建 流程,一般这句构建代码都会放在svn的hooks目录下的某个文件下,svn的回调的钩子目录hooks,配置好后,只要svn一提交,就会触发这个目录下配置好的钩子文件,钩子文件里的url被执行就会触发构建。
svn仓库下的 hooks文件夹下为我们提供了很多示例,我们当前用到的是post-commit 意思是在提交之后触发什么动作

下面我们进行操作
1 2 3 4 5 6 7 8 9 10 11 |
cd /var/svn/repository/hooks #进入svn仓库下的钩子程序目录 cp post-commit.xml post-commit #注意这里不能带后缀,否则执行不力 chmod a+x post-commit #赋予执行权限 然后删除这个文件里的不想关内容,用curl的方式执行钩子回调命令 #!/bin/bash curl -X -ushooter:5950996 http://192.168.6.121:8080/job/application-tank/build?token=shooter 这样开发人员每次提交svn都会触发新的构建,测试起来不是很方便了吗。 |
1 2 3 |
注意:svn版本差异,小bug提示 在svn地址后边加上 svn://xxxxxx/xxx/xxdfddf@HEAD 可以让他获取当前最新版本,而不是上一个版本,记住在后面加上 @HEAD |
下来我们提交版本测试(我没有用svn,我是git,所以就不演示了)
6.3 钩子程序(Git)
github上我们怎么样去创建钩子呢?

webHook


点击添加完成后就ok
最后我们去jenkins里关闭掉,防止跨站点请求伪造,因为我们这个github的webhooks并不支持什么请求消息头,如果jenkins你需要什么验证的话,那么github估计你会访问不了。
1 2 3 4 |
jenkins 系统管理-全局安全配置 找到 CSRF Prodection 把下面的防止跨站点请求伪造,前面的勾去掉,github就能正常访问你这个jenkins了了 |

(完)
- 本文固定链接: https://www.yoyoask.com/?p=3737
- 转载请注明: shooter 于 SHOOTER 发表