jenkins的使用

简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
主要用于:
1.持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。
2.监控一些定时执行的任务。

安装和启动

  • Jenkins for Windows安装
  • Tomcat+Jenkins.war
  • Cmd : Java -Jar Jenkins.war
    其中第三种方法在各种操作系统平台上都可以使用,启动命令java -jar jenkins.war --httpPort=8082//表示使用8082端口启动Jenkins (默认端口是8080) ,
    如果是windows 则安装后,在浏览器中打开localhost:8080即可启动,如果有端口冲突,则需要修改默认端口,参考 # jenkins 修改端口号
    第一次启动jenkins时,处于安全考虑,jenkins会自动生成一个随机的口令,注意控制台输出的口令,复制下来,然后再浏览器中输入:http://localhost:8080/粘贴口令,进入安装界面,如果执行默认的安装,Jenkins就自动配置好了Maven git等常用插件.最后创建一个admin用户,然后需要输入初始化密码,会提示在用户根目录已经生成,一般都是jenkins安装目录下的.jenkins/secrets/initialAdminPassword,输入密码后即可进入jenkins

配置jenkins

首次进入会提示安装插件,建议安装推荐的,如果是高级用户则可以选择第二个选择自己需要的插件即可,待插件安装完毕即可正常使用,在需要用到第三方插件是还可从 系统管理->管理插件->可选插件 选择过滤查找自己需要的插件

jenkins 修改端口号

1.先停止jenkins服务
2.打开"C:\Program Files (x86)\Jenkins\jenkins.xml"
修改该段<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>中的
--httpPort=8080 => --httpPort=8081
3.重新启动jenkins服务

jenkins 基本操作

  • 关闭jenkins服务http://localhost:8080/exit
  • 重新启动jenkins服务器http://localhost:8080/restart
  • 重载jenkins服务http://localhost:8080/reload

jenkins 自定义项目路径和jenkins根目录

1.自定义项目路径:

进入没有my views - job -配置 - General -高级项目选项-选择使用“自定义的工作空间”,配置后项目不用放到jenkins默认的workspace里了。

image.png
2.更改整个jenkins的项目空间
  1. 先设置环境变量,变量名为JENKINS_HOME, 值为你想设置的目录 (一般情况下这样就够了,如果还是不行,就进行第二步)
  2. jenkins.war -> WEB-INF -> web.xml,修改此文件 (大概会在165行):
 <!-- if specified, this value is used as the Hudson home directory -->
  <env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>;
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value></env-entry-value>
  </env-entry>

在标签<env-entry-value></env-entry-value>中添加你的路径

配置私有仓库方法 参考

Jenkins支持自动从Git服务器下载构建程序,有助于团队开发部署,如果是私有项目则需要用户名密码登录,也可直接用ssh-key方式登录.此处用oschina做演示.

  1. 配置ssh-key
    生成SSH密钥打开终端命令工具,输入命令:ssh-keygen -t rsa -C "example@mail.com",
    公钥内容在 ~/.ssh/id_rsa.pub
    私有内容在 ~/.ssh/id_rsa
  2. 把公钥的内容加入git@osc 的SSH密钥中
    将公钥贴在osc@git用户设置的 SSH公钥



    3.在Jenkins配置git ssh
    在Jenkins ->Credentials->System--> Add credentials



    选择 SSH Username with private key.private key选择Enter Directly,粘贴私钥key

4.Jenkins Job中配置git
取得私有git的仓库配置并安装了git插件,在源码管理选项中会出现Git选项,


配置webhook钩子使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成

准备工作
  1. “码云 Git@OSC”项目托管地址,这里假设我自己的项目:https://git.oschina.net/xuliugen/dlt-server.git(私有项目)

  2. 安装Generic Webhook Trigger插件

在“系统设置–插件管理–可选插件”界面搜索:Generic Webhook Trigger,可以看到,点击安装,然后重启。


插件地址:https://wiki.jenkins-ci.org/display/JENKINS/Generic+Webhook+Trigger+Plugin

搭建工作

一、创建Job
这里我的是Maven项目,所以直接使用下图中红色步骤1和2

这里写图片描述

二、配置Job

下边依次配置是:General–>源码管理–>构建触发器–>Optional filter–>构建环境–>Pre Steps–>Build–>Post Steps–>构建设置–>构建后操作 的配置。

(1)General



(2)源码管理


注意:这里指定 Build的分支为develop,只是为了在开发的时候部署开发的代码,如果没有直接就是master

关于账户密码的设置,如有问题请参考:

使用Jenkins配置Git+Maven的自动化构建:http://blog.csdn.net/xlgen157387/article/details/50353317

(3)构建触发器

直接勾选使用插件即可!

(4)Optional filter、构建环境、Pre Steps这三个部分没有进行配置,如下:

(5)Build、Post Steps、E-mail Notification



a、指定根pom文件;

b、这里由于我的项目是多环境的,如下:


我需要编译的是dev环境并且跳过测试,所以填入命令:

clean install -Pdev -Dmaven.test.skip=true -e

如果没有环境配置的话,直接忽略就可以!
c、选中:Run only if build succeeds
(6)构建后操作


我这里是部署到Tomcat容器中,关于过程不再多说,可以参考:
使用Jenkins配置Git+Maven的自动化构建:http://blog.csdn.net/xlgen157387/article/details/50353317

(7)点击Apply 保存,到此Job配置完成!

三、配置用户和Security

(1)在“系统管理–管理用户–用户列表–admin处点击进去–左边侧边栏–设置”设置用户API Token!找到等会会用!


可以进行Change!
四、配置码云WebHooks
找到WebHooks配置界面,在POST地址框中输入如下格式内容:

http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke 

具体如下:
a、User ID:既是“三(1)”中的User ID,我的是admin;
b、API Token:既是“三(1)”中的API Token,例如我的是8c1d11114ab111111111fdf21111a6a97;
c、Jenkins IP地址:就是你的Jenkins的服务器IP地址,这个必须是公网IP地址,例如我的是210.41.223.54;
d、端口:就是Jenkins服务器的端口;
e、后边的内容就是Generic Webhook Trigger
插件的地址,无需改变;
例如我的配置为:

http://admin:8c1d11114ab111111111fdf21111a6a97@210.41.223.54:8010/generic-webhook-trigger/invoke 

点击提交之后,界面如下:


URL后边的密码是,是jenkins用户admin的账户密码。
然后点击“测试” 看一下Jenkins是否开始运行!
到此为止就结束了?然并没有...
上面如果是多个项目,会发现,用到的url是相同的!!!导致只要有一个webhook触发,所有的钩子都被触发,这是不可以的!
参考:使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成--指定具体项目和分支进行集成

主要参数参考:

ref
$.ref

project.git_ssh_url
$.project.git_ssh_url

^(refs/heads/develop)|(git@gitee.com:tj/web.git)$
$ref|$project.git_ssh_url

npm install && npm run build && xcopy D:\web\source\dist D:\Project\web /E /C /Q /Y

http://admin:af73f4b19389e52e59d9cebdaf366dc2@121.121.121.121:8080/generic-webhook-trigger/invoke
af73f4b19389e52e59d9cebdaf366dc2
9674d38e69494768be5ea2994a07e438
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
/t:ResolveReferences;Compile 
/t:_CopyWebApplication
/t:Rebuild
/property:Configuration=Release
/property:TargetFrameworkVersion=v4.5
/p:WebProjectOutputDir=D:\web\source\handan_road_api_publish
/p:OutputPath=D:\web\source\handan_road_api_publish\bin

构建.NET自动编译测试与发布环境

  • 在插件管理里面添加MSBuild Plugin
  • 在系统管理=>全局工具配置中选择MSBuild选项:配置如下


    image.png

    其中Path to MSBuild选项为msbuild.exe文件夹路径

  • 在需要构建的项目的配置的构建中选择如下:


    msbuild
  • 配置参数如下:


    image.png

构建.net程序流程(参考:https://www.cnblogs.com/linJie1930906722/p/5966581.html)

完成!
欢迎讨论!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • 持续集成(CI)对于软件工程来说非常重要,它的意义在于产品快速迭代的同时,还能够让代码保持高质量,所以编写高质量的...
    resolvewang阅读 28,687评论 5 22
  • Mac中jenkins的使用jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成...
    番薯大佬阅读 2,276评论 0 4
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,717评论 6 342
  • jenkins,作为开源世界的持续集成工具(CI),表现其实不错了。虽然不能与Atlassian的bamboo相比...
    igool阅读 4,694评论 0 8