分享

使用jenkins实现持续集成

 周伟资料室 2019-01-09

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插件,然后在tomcatconf目录配置tomcat-users.xml文件,如我这里配置的是manager<tomcat-users>节点里添加如下内容:


配置完之后一次war包路径、用户名、密码、主机即可

      配置完之后一次war包路径、用户名、密码、主机即可

      参数说明:

  • WAR/EAR fileswar文件的存放位置,如:**/build/warDest/ad-gx-admin.war
  • Context path:访问时需要输入的内容,如ad-gx-admin访问时如下:     http://172.16.4.166:10001/ ofCard/ad-gx-admin如果为空,默认是war包的名字。
  • Container:选择你的web容器,如tomca 7.x
  • Manager user name:填入tomcat-users.xml配置的username内容
  • Manager password:填入tomcat-users.xml配置的password内容
  • Tomcat URL:填入http://192.168.x.x:8080/
  • Deploy on failure:构建失败依然部署,一般不选择

   注意:虽然这种部署方法可能会导致tomcat加载时出现卡死的现象。但是也是最简单的部署方式。如果卡死了重启下就好了,将tomcatjava内存参数调高可以解决这个问题。

最后不要忘记点击保存喔。

好了!到此一个项目的获取源码,打包,远程部署

4.2.7.2构建后发布静态结果

  输入配置文件

checkstyle-result.xml配置文件请查看附件“checkstyle-result.xml说明”,里面有配置说明。

所有这些配置多做完之后,在最下方点击“保存”按钮,现在回到首页去进行构建吧!!!

 

4.3 监控

4.3.1 主页面介绍

 

1、左边菜单栏

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

 

2、监控项目列表

 这里主要是Jenkins当前正在监控的项目列表。点击进去可查看当前项目详细情况。

 

模块1

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

模块2

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

模块3

  • Checkstyle Trend:历史构建完之后的解决的代码中静态警告走势;
  • 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./redhat/jenkins-2.33-1.1.noarch.rpm(jenkins下载地址:http://pkg./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.23.4.2

5.3 JAVA_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.13.4.3

5.3 Unable to access the repository 

在配置“源码管理”时,如果Credentials 不选择或者选择了验证不正确,会出现这个错误,请参见3.4.44.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说明

View Code

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多