精华内容
下载资源
问答
  • jenkins使用

    千次阅读 2017-05-05 20:53:17
    这几天研究了一下jenkins使用,做一下记录。一、基本使用 下载jenkins 下载地址:https://jenkins.io/download/ ,选择 启动jenkins 这里我们选择在后台启动jenkins,这样当我们关闭终端的时候,jenkins的服务...

    这几天研究了一下jenkins使用,做一下记录。

    一、基本使用

    1. 下载jenkins
      下载地址:https://jenkins.io/download/ ,选择这里写图片描述
    2. 启动jenkins
      这里我们选择在后台启动jenkins,这样当我们关闭终端的时候,jenkins的服务还是运行的。cd 到jenkins的war包所在的目录,分为两种情况:
    3. windows下,执行
      start /b java -jar jenkins.war --httpPort=9100
    4. linux下
      nohup java -jar jenkins.war --httpPort=9100 & tail -f nohup.out
    5. 安装插件
      在浏览器输入 localhost:9100之后,需要你输入一串数字,这串数字在控制台打印出来了,如图:这里写图片描述 ,将这串数字输入到输入框,点击continue。出现选择安装插件的界面,这里我们选择第一个,系统建议的插件,点击之后,就开始了安装过程,耐心等待,大概需要10分钟的时间。安装过程中,有的插件会安装失败,应该是需要科学上网,如图:这里写图片描述。不过最常用的肯定狐疑安装上的,不用担心,如果一直停留在安装界面,那么就刷新一下网页
    6. 注册&登陆
      这里写图片描述 按照要求输入就可以了
      这里写图片描述
      这里写图片描述
    7. 新建工程
      点击创建一个新任务,这里写图片描述
    8. 配置工程
      这里写图片描述
    9. 常用配置
      点击General,选择下面的高级,在这里配置自定义的工作空间,就是源代码拉取的本地目录位置。
      这里写图片描述
    10. 源码管理
      如果源码管理只有一个none选项的话,点击菜单栏最左边 的jenkins选项->系统管理->管理插件,选择可选插件,勾选Subversion plugin-in和GitHub Plugin,
      参考这里
      这里写图片描述
      这里写图片描述
      这里选择svn,输入svn的仓库地址,和用户名密码。需要创建一个用户名和密码键值对。

    11. 列表内容

    12. 构建触发器
      这里可以设置触发构建的条件,其中 “Build periodically”是定期构建;“Poll SCM”是当有提交操作的时候触发构建。这里可以根据情况选择
    13. 构建后操作
      当拉取完代码之后,这里写脚本代码,对工程进行编译、发布
      这里写图片描述
    14. 立即构建
      选择一个新建的工程,然后点击左边的立即构建,这个时候就会从仓库中把我们的代码拉取到指定的目录。
      这里写图片描述

    二、高级使用(分布式部署)

    ps:我们可以把节点分组,比如说A,B,C,D四台服务器都叫”windows”,E,F,G,H这四台服务器叫”Linux”,在Job页面我们就可以限制部署到哪些子节点,在General选项中的restrict where can be run中配置,如果不配置的话,默认运行所有的节点。
    1. 开启java web start方式
    选择系统管理->Configure Global Security
    这里写图片描述
    2. 新建节点
    系统管理->管理节点->新建节点 (节点名称不能为中文)
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    将 slave.jar放到服务器上,然后使用nohup执行上一个截图上的指令,执行之后,那个红叉就消失了这里写图片描述
    3. 新建一个工程
    这里写图片描述
    选择上一步新建的节点
    这里写图片描述
    剩下的配置在第一大节就已经说过了,参考jenkins的基本使用吧

    展开全文
  • Jenkins使用

    千次阅读 2017-03-09 10:19:04
    # Jenkins使用 这篇文章主要介绍Jenkins持续集成的功能以及使用方法 - 1.持续集成的概念 - 2.Jenkins简介 - 3.SonarQube简介 - 4.Jenkins使用1.持续集成的概念 持续集成,Continuous integration ,简称CI。...

    ![# Jenkins使用
    这篇文章主要介绍Jenkins持续集成的功能以及使用方法
    - 1.持续集成的概念
    - 2.Jenkins简介
    - 3.SonarQube简介
    - 4.Jenkins使用

    1.持续集成的概念

    持续集成,Continuous integration ,简称CI。随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

    持续集成的特点

    (1)它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
    (2)需要有专门的集成服务器来执行集成构建;
    (3)需要有代码托管工具支持;

    持续集成的作用

    (1)保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
    (2)持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

    2.Jenkins简介

    Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

    Jenkins特点

    (1)易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
    (2)易配置:提供友好的GUI配置界面;
    (3)变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
    (4)支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
    (5)集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
    JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
    (6)支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
    文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
    (7)支持第三方插件:使得 Jenkins 变得越来越强大;

    3.SonarQube简介

    SonarQube是什么?

    SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。

    Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。
    (1) 不遵循代码标准

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

    (2)潜在的缺陷

    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。

    (3)糟糕的复杂度分布

    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

    (4)重复

    显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

    (5)注释不足或者过多

    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

    (6) 缺乏单元测试

    sonar可以很方便地统计并展示单元测试覆盖率。

    (7) 糟糕的设计

    通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

    4.Jenkins使用

    写本篇文章之前,已经安装下载好相应的Jenkins以及SonarQube了。在这里主要讲述一下怎么使用Jenkins。
    1. 在需要集成的项目根路径下新建sonar-project.properties文件,内容如下:

    # must be unique in a given SonarQube instancesonar.projectKey=my:project
    # this is the name displayed in the SonarQube UI
    sonar.projectName=myProjectName
    sonar.projectVersion=1.0
    # Path is relative to the sonar-project.properties file. Replace “\” by “/” on Windows.
    # Since SonarQube 4.2, this property is optional if sonar.modules is set.
    # If not set, SonarQube starts looking for source code from the directory containing
    # the sonar-project.properties file.
    sonar.sources=src
    # Encoding of the source code. Default is default system encoding
    sonar.sourceEncoding=gbk

    1. Jenkins使用
      (1)Jenkins访问地址:http://192.168.10.203:8086/jenkins(本地址为内网环境)
      如下图所示:
      这里写图片描述
      (2)输入用户名密码,进入首页。如下图:
      这里写图片描述
      (3)点击新建,输入item name,这里选择构建一个maven项目,如下图所示:
      这里写图片描述
      (4)进入配置界面如下图
      这里写图片描述
      在源码管理标签页,选择Subversion,输入要构建项目svn的Repository URL,并指定对应的Credentials即是用户名密码
      在Post Steps标签页,选择一个Execute shell,输入Sonar-scanner的执行脚本命令/home/jenkins/sonar/sonar-scanner-2.8/bin/sonar-runner,最后保存。
      (5)进入构建页面,如下图:
      这里写图片描述
      点击立即构建,等待构建完成。点击返回面板,如下图:
      这里写图片描述
      构建项目成功。

    2. Sonar查看使用
      Sonar登录地址http://192.168.10.203:9000/,输入对应用户名密码进入下图:
      这里写图片描述
      这里可以查看Sonar检测出来的项目存在的BUG以及潜在风险。

    展开全文
  • jenkins使用笔记

    千次阅读 2019-05-23 22:47:12
    jenkins使用笔记 本博客主要内容: 总结一下我的 jenkins 使用方法,以及一些碰壁多次后留下的避坑笔记。 1.前言 jenkins是一个帮助你部署项目的工具,有了这个工具,每次代码更新后你只需要打开jenkins,点击...

    jenkins使用笔记


    本博客主要内容:
    总结一下我的 jenkins 使用方法,以及一些碰壁多次后留下的避坑笔记。

    1.前言
    jenkins是一个帮助你部署项目的工具,有了这个工具,每次代码更新后你只需要打开jenkins,点击构建,然后等待部署完成即可。在了解jenkis前,我曾经有过一下主要疑问:

    1. jenkins安装在远程服务器还是本地
    2. jenkins是怎样获取代码以及将代码编译成程序的
    3. jenkins是怎样与远程的服务器进行交互的
    4. jenkins是怎样启动远程服务器上的程序的

    我的解答:
    首先,jenkins以一个服务的形式启动,启动后会监听本机设置的端口上,然后通过浏览器访问这个端口从而进入界面以及进行一系列的操作,所以理论上装在服务器还是本机都没问题,但常见还是安装在本地。
    第二点,jenkins创建一个项目时需要指定代码的来源,这个来源常常是github仓库的url地址,构建一开始,jenkins会先将代码拉取到工作目录,然后再执行你指定的操作。
    第三点,如何指定后续操作:在拉取代码后其实就只剩下最后一部,也就是通过编写脚本来指定操作。jenkins作为一个工具,虽然能为你减轻许多工作,但是仍然不是万能的,它没有提供默认的部署步骤。换句话说,在实现轻松一建部署之前,你需要对确定好并且告诉jenkins部署项目的整个流程,而这个流程主要通过脚本的编写完成。
    第四点,与服务器交互:至于与服务器的交互,主要使用到一个名为SSH Credentials的插件,通过这个插件,你可以设置需要发送的文件,发送到的目录,以及发送后在远程服务器上面执行什么命令。主要的步骤也是一系列命令的编写,不过需要借助一个插件罢了。

    我的体会及使用方法
    jenkins提供了很多强大的功能和插件,但是作为非专业人员,能够借助这个工具实现自己想要的功能即可,其余不必深究。
    因此我的使用方法粗暴而简单:
    1, 创建一个自由风格的项目,填写名称和注释
    2.设置github仓库的url,
    3.为避免构建历史保留太多,勾选‘丢弃旧的构建’,设置保留日志和保留旧构建的次数
    4.Source Code Management :设置仓库地址和git账号,分支等
    5.Build Triggers: 直接跳过
    6.BUILD :设置构建的命令,例如nginx用 ng build, go 用 go build, jenkins 会在工作目录按顺序执行这些命令。注意事项:
    需要设置环境变量,并且更目录就是jenkins的工作目录,偶尔需要跳到特定的文件夹才能真确地build。
    7.Post-build Actions :将什么文件发送到服务器,并且执行什么命令。注意事项:1.需要先安装上述的ssh插件,2.需要先到插件管理中设置ip地址,密码,工作目录等配置。
    8.保存配置,开始构建,查看控制台输出,调整配置直到达到需要的效果。

    避坑笔记
    在某些坑上浪费了很多时间,注意是发生了无法发送文件到服务器的问题。
    遇到这种情况,常常一时难以确定原因的出处,是文件路径编写错误?还是发送路径错了?还是不能正常连接服务器?还是发送到了服务器但是找不到?。。。。。
    经过多次碰壁,得到以下一些经验和注意事项:
    在这里插入图片描述暂到这里,日后继续完善和添加笔记。。。

    展开全文
  • Jenkins使用教程

    万次阅读 多人点赞 2018-05-02 16:22:36
    本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的著名开源项目 fastjson,以此演示 Java 项目(SVN+Maven)中 FindBugs/CheckStyle/PMD 等常用插件的使用、单元...

    Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的著名开源项目 fastjson,以此演示 Java 项目(SVN+Maven)中 FindBugs/CheckStyle/PMD 等常用插件的使用、单元测试及其覆盖率报告等,力求实战性强。

    作者:王克锋 
    出处:https://kefeng.wang/2017/01/06/jenkins/ 
    版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。

    1 安装 Jenkins

    官网: https://jenkins.io/

    1.1 安装 JDK/Maven

    Jenkins 自身采用 Java 开发,所以要必须安装 JDK; 
    本文集成的项目基于 Maven 构架,所以 Maven 也必须安装; 
    两者的安装方法请参考我的另一篇文章:Tomcat 安装及其单机多实例部署

    export JAVA_HOME=/usr/java/jdk1.8.0_111
    export MAVEN_HOME=/opt/apache-maven-3.3.9
    • 1
    • 2

    1.2 安装 Jenkins

    以下四种方法任选一种,推荐第一种。

    1.2.1 离线安装

    ## http://pkg.jenkins-ci.org/redhat/
    wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm ## 下载(也可以Windows下载再转过来)
    sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key ## 公钥
    sudo yum -y install jenkins-*.noarch.rpm
    • 1
    • 2
    • 3
    • 4

    1.2.2 在线安装

    ## http://pkg.jenkins-ci.org/redhat/
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
    sudo yum -y install jenkins
    • 1
    • 2
    • 3
    • 4

    1.2.3 基于 Tomcat 安装

    1.2.4 免安装方式

    wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
    sudo java -jar jenkens.war ## 启动服务,直至看到日志 `Jenkins is fully up and running`
    curl http://localhost:8080/ ## Jenkins 已就绪
    • 1
    • 2
    • 3

    1.3 调整配置文件

    ## sudo vim /etc/sysconfig/jenkins
    JENKINS_USER="root" ## 原值 "jenkins" 必须修改,否则权限不足
    JENKINS_PORT="8080" ## 原值 "8080" 可以不修改
    ## 还有开启 HTTPS 相关参数,此处不打算开启,故不作说明
    • 1
    • 2
    • 3
    • 4

    安装目录: /usr/lib/jenkins 
    工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME)

    1.4 启动

    sudo systemctl enable jenkins
    sudo systemctl restart jenkins
    • 1
    • 2

    查看日志文件: sudo tail -f /var/log/jenkins/jenkins.log

    启动后会生成文件 hudson.model.UpdateCenter.xml,需要修改它, 
    否则浏览器首次进入时会卡在“Jenkins 正在启动,请稍后…”

    ## 原值: http://updates.jenkins-ci.org/update-center.json
    ## 新值: http://mirror.xmission.com/jenkins/updates/update-center.json
    ## 或者: http://mirror.xmission.com/jenkins/updates/current/update-center.json
    sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
    sudo sed -i 's/updates.jenkins-ci.org/mirror.xmission.com\/jenkins\/updates/g' /var/lib/jenkins/hudson.model.UpdateCenter.xml
    sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
    sudo systemctl restart jenkins
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    1.5 防火墙放行

    ### sudo vim /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
    ### 重启生效: sudo systemctl restart iptables
    • 1
    • 2
    • 3

    1.6 卸载

    如果要重装,或者本机不需要 Jenkins,可卸载:

    sudo systemctl stop jenkins
    sudo systemctl disable jenkins
    sudo yum -y remove jenkins
    sudo rm -rf /var/{lib,log,cache}/jenkins /usr/lib/jenkins /root/.jenkins
    sudo rm -rf `sudo find /{etc,var,run} -name "jenkins*"`
    • 1
    • 2
    • 3
    • 4
    • 5

    2 基本配置

    2.1 登录

    浏览器进入 http://centos:8080/ 
    首次进入需要输入初始密码来解锁,初始密码查看方法: sudo cat /var/lib/jenkins/secrets/initialAdminPassword 
    jenkins unlock
    进入 Jenkins 定制界面,让选择 Install suggested plugins 或 Select plugins to install 时,两者都不要选,直接关闭,下一个界面点击“Start using Jenkins”; 
    jenkins customize
    修改登录密码:主界面右上角“注销”链接的左边的用户名下拉菜单中点“设置”。

    2.2 安全设置

    默认情况下,任何用户都可以使用 Jenkins 进行发布。 
    可以进入相关设置:系统管理 / Configure Global Security, 
    选择 Jenkins专有用户数据库,不要选中 允许用户注册; 
    选择 登录用户可以做任何事,选中 Allow anonymous read access

    2.3 插件安装方法

    如果安装插件失败率很高,可设置翻墙,请参考我之前的文章:翻墙代理 Shadowsocks 使用详解

    2.3.1 离线安装

    手工下载(*.hpi): http://updates.jenkins-ci.org/download/plugins/ 
    进入:系统管理 / 管理插件 / 高级,然后上传插件进行安装。 
    无需重启 Jenkins 插件即生效。

    2.3.2 在线安装

    进入:系统管理 / 管理插件 / 可选插件 
    查找并勾选所需插件,点击“直接安装”; 
    无需重启 Jenkins 插件即生效。如遇失败可重试或离线安装。 
    jenkins plugins

    2.4 工具设置

    进入:系统管理 / Global Tool Configuration 
    JDK 下不勾选“自动安装”,指定别名=JDK-1.8.0.111, JAVA_HOME=/usr/java/jdk1.8.0_111 
    Maven 下不勾选“自动安装”,指定别名=Maven-3.3.9, MAVEN_HOME=/opt/apache-maven-3.3.9 
    点击 Save 按钮。 
    重启 Jenkins 后生效:sudo systemctl restart jenkins 
    jenkins tools

    3 Maven(SVN) 项目接入

    3.1 准备 SVN 源码

    使用 alibaba 的 fastjson 来演示: 
    下载: https://github.com/alibaba/fastjson/archive/master.zip 
    SVN地址: svn://centos/repo1/fastjson

    3.2 安装相关插件

    3.3 新建构建项目

    3.3.1 开始创建

    主页:点击“新建”; 
    项目类型:输入项目名称 fastjson,类型选择“构建一个Maven项目”(如果没有此项可选,请检查插件“Maven Integration plugin”是否已安装); 
    jenkins create

    3.3.2 源码管理

    选择“Subversion”(如果没有此项可选,请检查插件“Subversion Plug-in”是否已安装), 
    仓库URL可以指定 svn/http/https 之一,这里指定 svn://centos/repo1/fastjson 
    Credentials: 添加 SVN 用户名密码,并从下拉列表中选择它。 
    jenkins source

    3.3.3 定时触发构建

    构建触发器: 只选中 Build periodically, “日程表”格式与 crontab 相似但有细微差别,示例如下:

    ## 每行由 5 个值组成(空格或TAB分隔),分别表示分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-7, 0/7=周日)
    ## "M,N" 表示M和N;"M-N" 表示范围[M,N];"M-N/X" 表示范围[M,N]内每隔X;"*/X" 表示整个范围内每隔X
    ## 前面提到的M/N/X的值都可以用H(意为Hash)代替,散列值起到随机值的效果,且同一项目取值稳定,这对于项目多时分散压力很有用。
    H/10  H(0-8)  *  *  1-5   ## 触发时间: 工作日、Hour为0~8按哈希随机、Minute以10为间隔
    H/10  H       *  *  0,6,7 ## 触发时间: 周末、Hour为全天按哈希随机、Minute以10为间隔
    ## “日程表”修改后,下方会给出下次执行时间点的预告。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    jenkins trigger

    3.3.4 版本提交触发构建

    构建触发器: 只选中 Poll SCM,可指定检查 SVN 代码是否有提交的时间:

    ## 格式与 "Build periodically" 相同
    H/10  *  *  *  *  ## 任何时候,每隔 30 分钟就检测一次 SVN,如果有提交就启动构建
    • 1
    • 2

    jenkins trigger

    3.3.5 Build 设置

    Root POM: 指定 pom.xml 相对路径 
    Goals and options: 指定 mvn 执行目标或选项,设置为 package -Dmaven.test.skip=true

    3.3.6 Post Steps 设置

    定制构建后的操作,通常选择“Run only if build succeeds”,支持 shell 等脚本;

    ## 脚本工作目录为: /var/lib/jenkins/workspace/fastjson
    # sudo systemctl stop tomcat
    # sudo cp -f target/*.war /opt/apache-tomcat-8.5.9/webapps/
    # sudo systemctl start tomcat
    ls -l target/*.?ar
    • 1
    • 2
    • 3
    • 4
    • 5

    jenkins poststep

    3.4 手工触发构建

    进入 My Views, 右侧看到各个项目; 
    点击进入关注的项目,点击左侧的“立即构建”; 
    jenkins build
    开始构建或构建完毕后,左下方列出每次构建的链接,点击进入某次构建; 
    点击左侧的“Console Output”,可查看构建日志,如有报错可以看到; 
    jenkins console
    纠正错误后,返回到工程,再次点击“立即构建”,直至构建成功; 
    如有网络相关报错,重试几次也会成功。

    4 开启 Java 代码静态检查

    4.1 安装相关插件

    如果是离线安装,需要先依次安装被依赖的插件: 
    Script Security Plugin 
    Matrix Project Plugin 
    Static Analysis Utilities

    再安装直接被使用的插件: 
    FindBugs Plug-in 
    Checkstyle Plug-in 
    PMD Plug-in

    插件官方资料: 
    FindBugs: https://wiki.jenkins-ci.org/display/JENKINS/FindBugs+Plugin 
    Checkstyle: http://maven.apache.org/plugins/maven-checkstyle-plugin/usage.html 
    PMD: http://maven.apache.org/plugins/maven-pmd-plugin/usage.html

    4.2 Maven 中设置插件(pom.xml)

    <project ...>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        </properties>
    
        <!-- ...... -->
    
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.4</version>
                    <configuration>
                        <xmlOutput>true</xmlOutput>
                        <findbugsXmlOutput>true</findbugsXmlOutput>
                        <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <linkXRef>false</linkXRef>
                        <failsOnError>true</failsOnError>
                        <consoleOutput>true</consoleOutput>
                        <configLocation>checkstyle.xml</configLocation>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>3.7</version>
                    <configuration>
                        <linkXref>false</linkXref>
                    </configuration>
                </plugin>
            </plugins>
        </reporting>
    </project>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    4.3 修改 Jenkins 构建配置

    jenkins findbugs config

    4.3.1 设置 Maven

    “Build”标签页,Goals and options 设置为: 
    package -Dmaven.test.skip=true findbugs:findbugs checkstyle:checkstyle pmd:pmd

    4.3.2 开启相关报告

    “构建设置”标签页,打开以下三个选项: 
    - Publish FindBugs analysis results 
    - Publish Checkstyle analysis results 
    - Publish PMD analysis results

    4.4 构建后查看报告

    构建后进入构建页面,从左边点击查看报告: 
    - FindBugs Warnings 
    - Checkstyle Warnings 
    - PMD Warnings 
    jenkins findbugs report

    5 开启邮件报告

    Jenkins 的邮件发送,原理与邮件客户端一样:把发件人的邮箱帐号、密码、SMTP服务器告诉 Jenkins,Jenkins 需要时使用该帐号向指定的收件人发送邮件报告。

    5.1 安装相关插件

    Jenkins 自带邮件插件(Mailer Plugin)的功能很弱且无法自定制, 
    需要安装扩展邮件插件: Email Extension Plugin

    5.2 全局统一设置

    以 admin@company.com 为例,如下图设置: 
    jenkins email-global

    5.2.1 设置管理员邮箱

    进入:系统管理 / 系统设置 / Jenkins Location 
    系统管理员邮件地址 设为 admin@company.com

    5.2.2 设置发件人帐号

    进入:系统管理 / 系统设置 / Extended E-mail Notification 
    “SMTP server” 设为 smtp.company.com 
    “Default user E-mail suffix” 设为 @company.com 
    “Use SMTP Authentication” 选中 
    “User Name” = admin@company.com(必须与管理员邮箱相同) 
    “Password” = ** 
    “Use SSL” = on 
    “SMTP port” = 465 
    “Charset” = UTF-8 
    “Default Content Type” = HTML (text/html)

    5.2.3 设置邮箱模板

    Default Subject: 构建通知:PROJECTNAME#PROJECTNAME−#BUILD_NUMBER - $BUILD_STATUS 
    Default Content:

    本邮件由系统自动发出,请勿回复!<br/>
    <h2><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></h2>
    
    <h4><font color="#0B610B">构建信息</font></h4>
    <hr size="2" width="100%" />
    <ul>
        <li>项目名称:${PROJECT_NAME} - #${BUILD_NUMBER}</li>
        <li>触发原因:${CAUSE}</li>
        <li>项目 URL:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
        <li>构建 URL:<a href="${BUILD_URL}">${BUILD_URL}</a></li>
        <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
        <li>工作目录:<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
    </ul>
    
    <h4><font color="#0B610B">失败用例</font></h4>
    <hr size="2" width="100%" />
    $FAILED_TESTS<br/>
    
    <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
    <hr size="2" width="100%" />
    <ul>
    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
    </ul>
    详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
    
    <h4><font color="#0B610B">代码检查</font></h4>
    <hr size="2" width="100%" />
    FindBugs:<a href="${BUILD_URL}findbugsResult">${BUILD_URL}findbugsResult</a><br/>
    CheckStyle:<a href="${BUILD_URL}checkstyleResult">${BUILD_URL}checkstyleResult</a><br/>
    PMD:<a href="${BUILD_URL}pmdResult">${BUILD_URL}pmdResult</a><br/>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    也可以自定义 Jelly 模板,并在 Default Content 中引用 ${JELLY_SCRIPT, template="html_gmail"}

    sudo mkdir -p /var/lib/jenkins/email-templates
    sudo cd /var/lib/jenkins/email-templates
    sudo wget https://github.com/jenkinsci/email-ext-plugin/raw/master/src/main/resources/hudson/plugins/emailext/templates/html_gmail.jelly
    # 更多模板列表: https://github.com/jenkinsci/email-ext-plugin/tree/master/src/main/resources/hudson/plugins/emailext/templates
    • 1
    • 2
    • 3
    • 4

    5.2.4 设置邮件触发时机

    点击 Default Triggers,比较好的方案是选中两项: 
    - Failure - Any ## 可定义“编译失败时”才向哪些人员发邮件(比如最近代码提交者) 
    - Success ## 可定义“构建成功时”才向哪些人员发邮件(比如所有产品关注者)

    5.2.5 邮件可用变量

    点击 Content Token Reference 右侧的问号图标,可以看到各邮件模板中可引用变量的含义。

    5.2.6 邮件未发送问题排查

    构建设置里指定的收件人只是 kevin,没有后续,希望采用插件 Email Extension Plugin 中的邮箱后缀, 
    却发现构建日志中报错: Failed to send e-mail to kevin because no e-mail address is known, and no default e-mail domain is configured 
    原来,扩展邮件插件有BUG,使用的是自带邮件插件的后缀设置,而后者之前没有设置。 
    点击 保存,保存邮件全局设置。

    5.3 项目设置中启用邮件

    构建后操作步骤: 增加 Editable Email Notification(来自插件 Email Extension Plugin)。下图设置的效果是: 
    - 构建失败时,向上次成功构建之后导致构建失败的 SVN 提交的人员发送邮件; 
    - 构建成功时,向上次成功构建之后有 SVN 提交的人员、还有“Project Recipient List”中的人员发送邮件;

    jenkins email-project

    5.4 验证构建报告邮件

    分别按以下三种情形触发构建,都能看到构建报告邮件: 
    - 手工触发:进入工程后,点击“立即构建”; 
    - 定时触发构建:“构建触发器”只选中 Build periodically; 
    - 版本提交触发构建:“构建触发器”只选中 Poll SCM。 
    jenkins email-report

    6 Java/JUnit 单元测试

    6.1 Maven 中设置插件(pom.xml)

    <project ...>
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                </plugin>
            </plugins>
        </reporting>
    </project>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    6.2 修改 Jenkins 构建配置

    “Build”标签页,Goals and options:确保去掉-Dmaven.test.skip=true即可。

    6.3 构建后查看单元测试报告

    jenkins findbugs report

    7 单元测试覆盖率报告

    7.1 安装插件

    JaCoCo plugin:与插件 Cobertura 一样,用于生成覆盖率报告,但比 Cobertura 更易用。

    7.2 调整工程 pom.xml

        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.8</version>
                    <executions>
                        <execution>
                            <id>prepare</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>report</id>
                            <phase>package</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    7.3 调整项目的构建设置

    项目的构建设置 Post Build Action 中,增加 “Record JaCoCo coverage report”,并设置期望的覆盖率阈值。 
    jenkins jacoco-config

    7.4 构建并查看报告

    构建完成后,点击本次构建页的“Coverage Report”查看报告: 
    jenkins jacoco-report

    8 更多有用插件

    • Folders Plugin:可嵌套地定义文件夹来级别 views / jobs;
    • build timeout plugin:允许用户中止耗时太久的构建;
    • Dingding[钉钉] Plugin:允许向阿里钉钉发送构建通知;
    • TestNG Results Plugin: 用 TestNG 代替 JUnit;
    • Publish Over SSH: 通过SSH发布文件或执行命令(使用SFTP的SCP)。
    展开全文
  • jenkins-jenkins使用publish over ssh 安装插件 配置机器 在系统管理>系统配置下: 这样就可以通过ssh传输文件了
  • Jenkins使用docker构建

    2020-03-26 13:48:50
    Jenkins使用docker构建 Jenkins master要将构建任务分配给Docker,就必须在Jenkins agent上安装Docker。建议给这些agent打上docker的标签。 在Jenkins agent上安装Docker注意 要将 Jenkins agent 的用户加入Docker的...
  • Jenkins使用2——Jenkins使用时间戳

    万次阅读 2018-07-27 15:01:58
    背景:新配置的安装配置的Jenkins,期望使用Jenkins的内置变量BUILD_ID时间戳格式作为文件的名称。 但是,echo ${BUILD_TIMESTAMP} 打印输出如下截图 解决:需要安装Zentimestamp plugin插件.安装完成后需要进行...
  • Windows系统中jenkins使用教程jenkins介绍jenkins下载jenkins安装Web安装jenkins配置Jenkins构建部署maven项目Jenkins部署war包到tomcat下的webapps目录 jenkins介绍 官网地址 https://jenkins.io Jenkins是一个开源...
  • JenKins使用教程 C# .Net

    千次阅读 2019-01-07 10:56:33
    JenKins使用教程 C# .Net 1、下载安装 2、配置Jenkins 安装成功后可在本地电脑上登录(localhost:8080,默认端口号是8080),创建一个用户名密码就登录进去了。在首页的左侧:系统管理-全局工具配置中添加MSBuild;如...
  • Jenkins使用Gitlab账号做用户权限管理
  • [问题已处理]jenkins使用ldap登录无限重定向 访问http://ip:8080/jenkins 输入账号密码之后 又重定向回首页,再次输入密码 一直循环 解决如下 访问http://ip:8080/jenkins/ ...
  • Jenkins使用经验谈1(一步一步搭建Jenkins环境) 在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下。我们来一起搭建Jenkins环境。首选你需要安装好JRE/JDK和Tomcat...
  • jenkins使用记录

    千次阅读 2019-01-04 10:14:06
    安装 : https://jenkins.io/index.html 可以随便参考一下文章:...   下载, rpm安装即可。 ...vi /etc/sysconfig/jenkins 修改下端口为8000这样不容易与 8080冲突。...默认的jenkins用户,没有权限执行kill ...
  • jenkins使用pipeline构建项目时发送钉钉通知 现在使用jenkins做持续集成和发布的越来越多,使用钉钉用来处理工作、交流的也越来越多,一般情况下,我们希望jenkins完成一个job的时候可以通知相关人员完成的状态...
  • jenkins 使用 总结

    2018-12-18 11:26:05
    文章目录写在前面安装配置启动操作邮件配置新建任务错误记录 写在前面 这不是一篇从头到尾的...wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo rpm --import https://pk...
  • jenkins使用技巧

    2017-06-05 17:46:21
    1、windows下重启jenkins服务: 到jenkins安装目录下(例如:C:\Program Files (x86)\Jenkins)执行:jenkins.exe restart
  • jenkins使用简介

    千次阅读 2017-12-07 15:18:45
    jenkins介绍 Jenkins 是一个可扩展的持续集成引擎。由于jenkins有着大量的插件,因此自由度高,很容易与各种开发环境进行联动,而且jenkins是开(免)源(费)的,所以应用度很高。还有一个重要的优点是集成的帮助...
  • 本文章用于记录在使用Jenkins使用Cobertura插件来集成代码覆盖率度量。代码覆盖率在测试过程中有多少应用程序的代码实际被执行。这是一个非常有用的工具,尤其是在用于去发现那些未经你的测试集测试的代码区域的时候...
  • Jenkins使用国内源

    千次阅读 2020-02-04 20:02:09
    合作者不愿意把代码托管在私有的gitlab服务器上,希望使用gitee,后端代码每次打包部署比较费事,用gitlab从gitee获取代码并进行CI/CD流水线比较麻烦(可能还要用到企业版功能),而gitee提供有jenkins插件,所以计划...
  • Jenkins使用问题记录

    万次阅读 2018-12-10 17:48:17
    使用Jenkins的版本为2.138.3,下载war包后启动即可运行: # 指定使用8080端口,可自定义 java -jar jenkins.war --httpPort=8080 建议后台启动,命令如下: # 1. 启动 # 指定后台启动 nohup java -jar jenkins.war ...
  • Jenkins使用场景

    千次阅读 2016-11-28 16:43:33
    作者:IDO老徐 ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请...Jenkins能解决什么问题,有哪些应用场景,为何要掌握Jenkins,掌握Jenkins后有哪些好处,弄懂Jenkins需要掌握哪些知识 Jen
  • 上一篇:jenkins使用自定义方式结合k8s实现ci/cd-后端实战https://blog.csdn.net/fsjwin/article/details/110736945 上一篇对后端代后端流水线部署k8s做了实战记录,本文对前端vue代码做个实战记录 1. 前端代码打包...
  • Jenkins使用Git Parameter时参数列表排序问题 背景 我们使用Jenkins进行项目构建,在提测某个tag时,利用Git Parameter插件手动选择tag进行构建。 问题 用于选择的tag列表没有顺序,很不方便选择最新的tag。如下图,...
  • Jenkins使用IOS打包问题(三)

    千次阅读 2018-01-31 17:04:22
    Jenkins使用IOS打包问题(二)中我使用手动更新签名的方式来更新签名,其中留下来还是要手动点击的这么不“优雅”的事情,我们写了一段Python的脚本实现了自动打包并上传的功能,但是在使用过程中发现如果我们增加...
  • Jenkins 使用心得

    千次阅读 2017-10-19 15:32:56
    我是在windows 64bit 机器上部署的Jenkins,主要目的是了解和学习更多的方便工具,高效和简便化我们日常的工作,比如服务器上的维护等。 1、Jenkins 部署 简要概括成以下步骤: 1) 从网上下载 war 包,把 war 放...
  • windows环境下Jenkins使用批处理命令失败的问题 Jenkins报错: D:\application\Jenkins\workspace>C:\Windows\System32\tar.exe -cf zone.tar.gz ./zone ‘C:\Windows\System32\tar.exe’ 不是内部或外部命令,也...
  • Jenkins使用及开发

    千次阅读 2018-04-24 21:18:16
    Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,316
精华内容 7,326
关键字:

jenkins使用