设为首页 收藏本站
查看: 1659|回复: 0

[经验分享] 使用jenkins实现持续集成

[复制链接]

尚未签到

发表于 2018-1-7 06:30:24 | 显示全部楼层 |阅读模式
4.2 建立项目

4.2.1 新建项目
  下面以建立一个自由风格软件项目为例进行说明


  • 点击左侧边栏的“新建”按钮,新建一个任务。
  • 填写项目的名称,并选择一种构建的方式,此时我们选择第一个,构建一个自由风格的软件项目,然后点击“OK”按钮创建任务,并进行详细的配置
  然后就会进行到下面这个配置页面

  接下来,我从General、源码管理、构建触发器、构建环境、构建、构建后操作这几个部分来进行详细配置说明

4.2.2 General
  这部分主要是设置下名称、工作空间等。

  第一步,点击高级按钮;
  第二步,勾选“自定义工作空间”,输入工作空间路径;

  若是只有一个项目,也可以直接到“系统管理>系统配置>工作空间目录”直接修改默认工作空间目录,如下图:


4.2.3 源码管理
  因为,我们的代码是部署在SVN服务器上的,所以这里有下面三个步骤来配置jenkins监控SVN服务器代码变化。
  第一步,选择Subversion;
  第二步,在Repository URL输入项目SVN地址;

  第三步,在Credentials选择SVN用户名和账号,初次会需要点击Add添加,如下。


4.2.4 构建触发器
  指定的项目完成构建后,触发此项目的构建。


  • Poll SCM:当选择此选项,您可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写H 2 * * *将使Jenkins每隔2分                  钟就检查一次源码仓库的变化。
  • Build periodically:此选项仅仅通知Jenkins按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个Job中运行一些测试用例的话,它就很有帮助。


4.2.5 构建环境
  略

4.2.6 构建
  这部分主要是配置构建的相关内容,用于定时触发构建或者手动执行构建的时候,对代码检验、编译时进行的操作。构建概念到处可查到,形象来说,构建就是要把代码从某个地方拷贝过来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个。
  因为我的项目是用ant脚本实现的编译和打包,所以我选择的是Invoke Ant,Ant Version选择我Ant配置的那个名字(这里可以参见3.4.2),注意不要选择default喔,那个选择了没有用。


  • 增加构建步骤:Invoke Ant
  • Targets:(什么也没写,默认执行根目录下的build.xml)
  如果你的构建脚本build.xml不在workspace根目录、或者说你的构建脚本不叫build.xml。那么需要在高级里设置Build File选项的路

  build.xml配置文件请查看附件“build.xml说明”,里面有每句配置说明;
  checkstyleBuild.xml配置文件请查看附件“checkstyleBuild.xml说明”,里面有每句配置说明;
  findBugsBuild.xml配置文件请查看附件“findBugsBuild.xml说明”,里面有每句配置说明。

4.2.7 构建后操作
  用于定义当前项目构建完之后的一些操作,比如构建完之后将checkstyle结果输出到指定日志文件,重新发布项目,去执行其他项目构建等。
4

  4.2.7.1 构建后发布项目
  注意,首先你必须安装好Deploy Plugin插件,然后在tomcat的conf目录配置tomcat-users.xml文件,如我这里配置的是manager, 在<tomcat-users>节点里添加如下内容:
  
  配置完之后一次war包路径、用户名、密码、主机即可
  配置完之后一次war包路径、用户名、密码、主机即可
  参数说明:
  


  • l WAR/EAR files:war文件的存放位置,如:**/build/warDest/ad-gx-admin.war。
  • l Context path:访问时需要输入的内容,如ad-gx-admin访问时如下:     http://172.16.4.166:10001/ ofCard/ad-gx-admin如果为空,默认是war包的名字。
  • l Container:选择你的web容器,如tomca 7.x
  • l Manager user name:填入tomcat-users.xml配置的username内容
  • l Manager password:填入tomcat-users.xml配置的password内容
  • l Tomcat URL:填入http://192.168.x.x:8080/
  • l Deploy on failure:构建失败依然部署,一般不选择
  注意:虽然这种部署方法可能会导致tomcat加载时出现卡死的现象。但是也是最简单的部署方式。如果卡死了重启下就好了,将tomcat的java内存参数调高可以解决这个问题。
  最后不要忘记点击保存喔。
  好了!到此一个项目的获取源码,打包,远程部署
  4.2.7.2构建后发布静态结果
  输入配置文件


  checkstyle-result.xml配置文件请查看附件“checkstyle-result.xml说明”,里面有配置说明。
  所有这些配置多做完之后,在最下方点击“保存”按钮,现在回到首页去进行构建吧!!!

4.3 监控

4.3.1 主页面介绍
  
  1、左边菜单栏


  • l 新建:这里进入新建项目。
  • l 用户:用户管理模块,对监控系统用户的增删改查。
  • l 任务历史:以往构建过的项目。
  • l 系统管理:进去是一些配置方面的东西,进入之后几个主要的子菜单分别是系统设置 、Global Tool    Configuration 、管理插件 几个模块
  • l My Views:当前监控的项目列表。
  • l Credentials:添加监控源码的的证书,其实就是SVN用户名和密码验证。
  2、监控项目列表
  这里主要是Jenkins当前正在监控的项目列表。点击进去可查看当前项目详细情况。

  模块1:


  • l 状态:最后一次构建的状态;
  • l 修改记录:代码修改记录;
  • l 工作空间:编译后代码存放的目录;
  • l 立即构建:单击此处,可立即进行构建;
  • l 删除Project:单击此处,可删除该项目;
  • l 配置:配置该项目相关监控信息(工作空间、chestyle规则等);
  • l Checkstyle Warnings:当前这次构建发现的静态警告;
  • l FindBugs Warnings:当前这次构建发现的FindBugs。
  模块2:


  • 这里显示的最近一次构建的相关信息,是否构建成功、构建用时等
  模块3:


  • l Checkstyle Trend:历史构建完之后的解决的代码中静态警告走势;
  • l FindBus Trend:历史构建完之后的解决的代码中FindBugs走势。
4.3.2 构建状态查询
  当任务一旦运行,您将会看到这个任务正在队列中的仪表板和当前工作主页上运行。这两种显示如下。

  一旦构建完成后,完成后的任务将会构建历史列表显示。

  当然你可以在Jenkins的主控制面板上看到它,如下图。

  在上面展示的截图中,您将注意到有两个图标描述当前作业的状态。S栏目代表着“最新构建状态”,W栏目代表着“构建稳定性”。Jenkins使用这两个概念来介绍一个作业的总体状况:
  1构建状态:
  下图中分级符号概述了一个Job新近一次构建会产生的四种可能的状态:



  • Successful:完成构建,且被认为是稳定的。
  • Unstable:完成构建,但被认为不稳定。
  • Failed:构建失败。
  • Disabled:构建已禁用。
  2构建稳定性:
  当一个Job中构建已完成并生成了一个未发布的目标构件,如果您准备评估此次构建的稳定性,Jenkins会基于一些后处理器任务为构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆盖率(Cobertura )和静态代码分析(FindBugs)。分数越高,表明构建越稳定。下图中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。
  当前作业主页上还包含了一些有趣的条目。左侧栏的链接主要控制Job的配置、删除作业、构建作业。右边部分的链接指向最新的项目报告和构件。
  通过点击构建历史(Build History)中某个具体的构建链接,就能跳转到Jenkins为这个构建实例而创建的构建主页上。如下图:

  如果你想通过视图输出界面来监控当前任务的进展情况。你可以单击Console Output(控制台输出)。如
  果工作已完成,这将显示构建脚本产生的静态输出;如果作业仍然在运行中,Jenkins将不断刷新网页的内容,以便您可以看到它运行时的输出。如下图:


五、常见错误处理

5.1 java.lang.UnsupportedClassVersionError
  这是因为jenkins和jdk版本不对应引起的。我这里用的是jdk1.7,所以下载版本http://pkg.jenkins-ci.org/redhat/jenkins-2.33-1.1.noarch.rpm(jenkins下载地址:http://pkg.jenkins-ci.org/redhat/),   原先现在2.5版本以上,版本太高,启动报“java.lang.UnsupportedClassVersionError”错,所以要卸载之前安装的jenkins-2.54-1.1.noarch,使用如下命令

5.2 command execution failed.Maybe you need to configure the job to choose one of your Ant installations?
  
  控制台输出
  Started by user admin
[EnvInject] - Loading node environment variables.

  Building in workspace /home/jenkins/workspace/My_cache
  Updating https://ip地址/svn/iptv/新业务/广西开机广告/code/ad-gx-cache at revision '2017-07-17T14:14:11.377 +0800'
  Using sole credentials hehaitao/****** in realm ‘<https://ip地址:443> VisualSVN Server’
  At revision 68144
  No changes for https://ip地址/svn/iptv/%E6%96%B0%E4%B8%9A%E5%8A%A1/%E5%B9%BF%E8%A5%BF%E5%BC%80%E6%9C%BA%E5%B9%BF%E5%91%8A/code/ad-gx-cache since the previous build
[workspace] $ ant -file checkstyleBuild.xml -DBUILD_NUMBER=8

  ERROR: command execution failed.Maybe you need to configure the job to choose one of your Ant installations?
[CHECKSTYLE] Skipping publisher since build result is FAILURE

[FINDBUGS] Skipping publisher since build result is FAILURE

  Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered
  Finished: FAILURE
  
  这是由于没有成功全局配置ant的环境变量没有配置成功导致,请确保环境Ant环境变量配置成功,并且在Global Tool Configuration正确添加了Ant的路径,这个可以参见2.2及3.4.2

5.3JAVA_HOME is not defined correctly.
  
  控制台输出
  Started by user admin
[EnvInject] - Loading node environment variables.

  Building in workspace /home/jenkins/workspace/My_cache
  Updating https://ip地址/svn/iptv/新业务/广西开机广告/code/ad-gx-cache at revision '2017-07-17T15:33:26.714 +0800'
  Using sole credentials hehaitao/****** in realm ‘<https://ip地址:443> VisualSVN Server’
  At revision 68151
[workspace] $ /home/lutong/apache-ant-1.9.9/bin/ant -file checkstyleBuild.xml -DBUILD_NUMBER=11

  Error: JAVA_HOME is not defined correctly.
  We cannot execute java
  Build step 'Invoke Ant' marked build as failure
[CHECKSTYLE] Skipping publisher since build result is FAILURE

[FINDBUGS] Skipping publisher since build result is FAILURE

  Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered
  Finished: FAILURE
  
  这是由于没有成功全局配置JDK的环境变量没有配置成功导致,请确保环境Ant环境变量配置成功,并且在Global Tool Configuration添加的JDK路径正确,这个可以参见2.4.1及3.4.3

5.3 Unable to access the repository
  在配置“源码管理”时,如果Credentials 不选择或者选择了验证不正确,会出现这个错误,请参见3.4.4及4.2.3

5.4 cant create file
  
  Checking out https://ip地址/svn/iptv/%E6%96%B0%E4%B8%9A%E5%8A%A1/%E5%B9%BF%E8%A5%BF%E5%BC%80%E6%9C%BA%E5%B9%BF%E5%91%8A/code/ad-gx-cache at revision '2017-07-17T17:46:17.618 +0800'
  Using sole credentials hehaitao/****** in realm ‘<https://ip地址:443> VisualSVN Server’
  ERROR: Failed to check out https://ip地址/svn/iptv/新业务/广西开机广告/code/ad-gx-cache
  org.tmatesoft.svn.core.SVNException: svn: E204899: Cannot create new file '/home/jenkins/workspace/广西开机广告/.svn/lock': 权限不够
  No changes for https://ip地址/svn/iptv/%E6%96%B0%E4%B8%9A%E5%8A%A1/%E5%B9%BF%E8%A5%BF%E5%BC%80%E6%9C%BA%E5%B9%BF%E5%91%8A/code/ad-gx-cache since the previous build
  
  这是由于 项目“广西开机广告”目录的权限不够,使用“chmod777 /home/jenkins/workspace/广西开机广告 ”即可
  附件:
  附件一:build.xml说明
  View Code
  附件二:checkstyle-result.xml说明

  

<?xml version="1.0" encoding="UTF-8"?>  
<project name="checkstyle" default="checkstyle" basedir="."> <!-- 检查源码的路径 -->
  
     <target name="init">
  
         <tstamp/>
  
         <!-- 输出报告的路径  -->
  
         <property name="project.dir" value="/home/jenkins/workspace/广西开机广告项目/checkstyle_report"/>
  
         <property name="project.checkstyle.report.dir" value="${project.dir}/${BUILD_NUMBER}"/>
  
         <property name="project.checkstyle.result.name" value="checkstyle-result.xml"/>
  
         <property name="project.checkstyle.report.name" value="checkstyle-report.html"/>
  
         <!-- 检测规则存放路径  -->
  
         <property name="checkstyle.config" value="/home/jenkins/workspace/checkstyle.xml"/>
  
         <property name="checkstyle.report.style" value="/var/lib/jenkins/plugins/checkstyle/WEB-INF/lib/checkstyle-frames.xsl"/>
  
         <property name="checkstyle.result" value="${project.checkstyle.report.dir}/${project.checkstyle.result.name}"/>
  
         <property name="checkstyle.report" value="${project.checkstyle.report.dir}/${project.checkstyle.report.name}"/>
  
         <mkdir dir="${project.checkstyle.report.dir}"/>
  
     </target>
  

  


  
     <taskdef resource="checkstyletask.properties">  
     <target name="checkstyle"  depends="init" description="check java code and report." >
  
          <checkstyle config="${checkstyle.config}"  failureProperty="checkstyle.failure"  failOnViolation="false">
  
             <formatter type="xml"   tofile="${checkstyle.result}" />
  
             <fileset dir="/home/jenkins/workspace/广西开机广告项目" includes="**/*.java" /> <!-- 检查源代码的存放路径 -->
  
         </checkstyle>
  
         <!--<style in="${checkstyle.result}" out="${checkstyle.report}" />
  
          通过指定的xsl模版文件生成一份html的报告,这里生成的文件用于邮件发送时附加上,另外Jenkins插件也会生成可视化的结果  -->
  
     </target>
  
     <target name="xml2html" depends="checkstyle">
  
         <!-- 将生产结果根据扩展样式表文件checkstyle-frames.xsl生成html页面,输出到html -->
  
         <xslt in="${checkstyle.result}" out="${checkstyle.report}">
  
         </xslt>
  
     </target>
  
</project>
  


View Code

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432430-1-1.html 上篇帖子: ant+jenkins+testng+selenium集成环境搭建 下篇帖子: jenkins配置源码管理git
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表