博客
关于我
Jenkins学习(一)
阅读量:323 次
发布时间:2019-03-04

本文共 1810 字,大约阅读时间需要 6 分钟。

学习笔记-Jenkins

笔记目录:

  • 准备环境
  • 启动Jenkins
  • 第一个Jenkins构建作业
  • 显示javadoc
  • 添加代码覆盖率和其他度量

 

 

一:准备环境

  • 安装jdk
  • 安装git
  • 安装github,配置SSH密匙
  • 登录:,点击fork,创建代码库副本,然后在本地克隆一个项目副本(检出)

 

二:启动Jenkins

可以通过java web start(绑定了java jre的技术)方式启动(但这个鬼东西的页面找不到)

换种方式:下载WAR包,通过命令行执行

(备注:也可以将包放入Tomcat的webapps目录下,后话)

官网下载jenkins:

执行命令,然后会提示jenkins需要初始设置,已创建管理员用户并生成密码。

在浏览器打开,输入密码

新手入门那就选新手配置

配置每次启动jenkins的地址:

初始化完成后,做一些基本配置

进入主配置屏幕:

使用本地jdk

使用本地maven

设置git(插件管理)

发现已经安装了

 

 

三:第一个Jenkins构建作业

选择自由式项目,它允许配置任何类型的构建作业,而且灵活和容易配置

它是案例项目的默认CI构建

告诉jenkins在哪找到项目的源代码,这里选的是我github分支的URL

要Jenkins监控仓库,有任何更改被提交都会开始构建,这是持续集成环境中建立构建作业常见方式

可以固定时间间隔构建,或手动触发,或在SCM使用"提交后"(post-commit)钩子远程触发构建。

Jenkins时间表使用UNIX的cron语法(需要学习一下UNIX)

cron语法包括以空格分隔的五个字段,分别指分钟(0~59),小时(0~23),月的一天(1-31),月(1~12),周的一天(0~7,0和7是星期日)

*是通配符字符,接受任意有效值,如:

提供范围:* 9-18 * * * *:指每天上午9点到下午6点间的每一分钟

间隔时间:*/10 * * * *:每隔10分钟

 

接下来配置实际的构建,可将构建作业分解成若干个步骤。

如运行一个Maven构建,这里目标输入的内容,会删除之前所有的构建产物,编译代码,运行单元测试并生成JAR报告

Jenkins的测试报告是JUnit采用的XML格式

在下图输入的内容,当maven在项目中运行单元测试时,它会在目标(target)目录的surefire-reports目录下自动生成XML测试报告

将构建产物归档

保存即可

 

然后在这页面,可以看到每隔一分钟就会构建一次(5个*),页可以手动构建

在主页可以看到所有的构建作业以及它们的情况

在这S下绿色√表示构建成功,实际上成功/纯蓝色球,黄色/其他类型构建失败,红色/编译失败

引入会导致单元测试失败的代码更改(前面已经配置了jenkins来监视github分支,有修改jenkins应该都能检测),打开文件

比如将*修改为+,提交后,推远程仓库

然后可以看到jenkins,一个新的构建1分钟后触发且运行失败

可以看到哪些测试是失败的以及中断了多久,可以单击失败的测试类,会显示对应的测试失败的实际细节,对问题重现和修复有帮助

然后把问题再修改就行了。

 

四:显示javadoc

通常情况下这种任务在一个独立的构建作业执行,下面简单的对zuoye1构建作业添加额外的步骤来生成和显示javadoc文档

Retain javadoc for each successful build:保留以前构建的javadoc

在这里路径一直有问题,通过这种方式生成后,改了路径也不行(这个问题先留着,有空再看看)

 

 

五:添加代码覆盖率和其他度量(这里有个问题待解决)

直接在这里下,该插件支持Maven和Jenkins开放源代码覆盖率的工具。

 

也可以在其他地方下了插件在这里安装

或者直接把插件复制到$JENKINS_HOME/plugins

 

 

设置代码覆盖率度量

案例项目已经配置了生成XML代码覆盖率报告,在项目pom.xml路径执行mvn cobertura:cobertura即可

我刚开始执行位置错了,导致了报错,而且也不是跑到maven路径下执行,而是在项目里执行

步骤1:以jenkins可以使用的XML格式生成Cobertura覆盖率数据

步骤2:配置jenkins显示覆盖率报告

定义你认可的代码覆盖率的最低接受水平

运行配置了Cobertura报告的构建作业

 

 

 

转载地址:http://zysh.baihongyu.com/

你可能感兴趣的文章
蓝桥杯 历届试题 幸运数 (堆+DFS)
查看>>
微信js-sdk使用简述(分享,扫码功能等)
查看>>
selenium 的介绍和爬取 jd数据
查看>>
mxsrvs支持thinkphp3.2伪静态
查看>>
mui HTML5 plus 下载文件
查看>>
DSP开发板准备
查看>>
c++中ifstream及ofstream超详细说明
查看>>
c++中explicit和mutable关键字探究
查看>>
c语言结构体字节对齐详解
查看>>
linux c/c++面试知识点整理(八)
查看>>
Deep residual learning for image recognition
查看>>
IO控制器
查看>>
Python 知识点总结篇(3)
查看>>
爬取网易科技滚动新闻
查看>>
vuex modules
查看>>
sleep、wait、yield、join——简介
查看>>
web项目配置
查看>>
基于单片机可控音乐流水灯控制设计-全套资料
查看>>
基于单片机简易信号误差分析设计-全套资料
查看>>
基于单片机简易脉搏测量仪系统设计-毕设课设资料
查看>>