`
lovefly_zero
  • 浏览: 390523 次
  • 性别: Icon_minigender_1
  • 来自: 株洲
社区版块
存档分类
最新评论

Use Hudson之项目构建

    博客分类:
  • CI
阅读更多
一、构建一个普通项目 

   Hudson能够被用于执行特有的构建服务器工作,诸如持续的/正式的/整晚的构建、运行测试、或者执行一些可重复的批处理任务。这在Hudson中可被称作"free-style software project(自由风格式的软件项目)"。

1、创建工程

   跳转的Hudson首页,选择"New Job",输入一个作业名后,选择“Build a free-style software project”。这项作业类型包含如下的内容:

  • 可选择的SCM,如您源代码保存的CVS或者Subversion地址。
  • 可选择的触发器,以控制Hudson何时执行构建。
  • 一些构建脚本(ant,maven, shell 脚本, 批处理文件等等),当实际作业发生时执行构建。
  • 可选的构建后步骤,以用于收集构建结束后的信息,诸如归档构件、和/或记录javadoc和测试结果。
  • 可选的通知步骤,以用于把构建结果通知到其他人或者其它系统,诸如发送Email、即时信息、更新至问题跟踪系统等。

   如果要获得当前栏目更多的信息,请点击配置页面右侧的图标。

  Hudson设置环境变量

Hudson设置的一些环境变量可用于通过Hudson来执行shell脚本、Windows批处理文件和Ant文件。下面有一个环境变量的列表,以及告诉你如何来使用它们。

1.1构建非源码控制的项目

    有时候,构建一个项目仅仅是用于演示目的,或者难以获得连接的SVN/ CVS仓库。通过选择配置项目"Source Code Management"下的"None" 时,您将只能:

  1. 只少构建一次项目(它会失败),但是Hudson会创建HUDSON_HOME/jobs/PROJECTNAME/workspace这样的结构。
  2. 复制该项目文件至HUDSON_HOME/jobs/PROJECTNAME/workspace下。
  3. 再构建并且适当地配置。

1.2Hudson设置环境变量

    当一个Hudson作业执行时,它会设置一些环境变量,以便于您在您的shell脚本、批处理命令或ant脚本中使用它们。下表包含了这些环境变量的列表。

环境变量 

描述
BUILD_NUMBER 当前的构建编号,如“153”。
BUILD_ID 当前的构建ID,如"2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss)
JOB_NAME 该构建的项目名称。这是一个您第一次创建它时你给你作业的名称。它出现在Hudson面板主页中的第三栏中。
BUILD_TAG 关于hudson-${JOBNAME}-${BUILD_NUMBER}的字符串。放入到一个资源文件、一个Jar文件等时以方便识别。
EXECUTOR_NUMBER 唯一号,用于在执行这次构建时识别当前执行人(同一天机器可能有多个执行人)。这个数字你能通过“build executor status”查看,但是该数字是从0开始的,而不是1。
JAVA_HOME  如果你的作业配置为使用指定的JDK,那么这个变量则为指定的JDK设置JAVA_HOME 环境变量。一旦这个变量设置,PATH也就同步更新了$JAVA_HOME/bin。
WORKSPACE 工作区的绝对地址。
SVN_REVISION 对基于Subversion的项目,该变量包含该模块的版本号。如果您有指定多个模块,该环境变量将不会被设置。
CVS_BRANCH

对基于CVS的项目,该变量包含该模块的分支。如果CVS配置为签出主干,该环境变量将不会被设置。

1.2.1Shell脚本和Windows批处理命令

   如果你使用一个shell脚本来完成你的构建,你可以把这些环境变量直接插入到你的shell脚本,或者在你的脚本中把它们作为参数调用。下面的例子将告诉你如何做:



 
   如果你正在执行一个Windows批处理命令,该变量将参照使用%VARIABLE_NAME%模式。譬如:


1.2.2Ant脚本

   如果你使用Ant 脚本来完成你的构建,你可能会在属性设置中包含环境变量。点击 Advanced... 按钮下方正好显示你想要构建的Ant目标。这将显示Properties框。下面的例子告诉你如何使用Hudson环境变量在Properties 框中设置Ant 属性值。



 

   另外,您可以使用env作为在你的build.xml文件中属性里推入所有环境变量的前缀。下面的例子告诉你怎么在"label" 属性中包含项目名称和构建号:

<property environment="env"/>
<property name="label" value="${env.JOB_NAME}-${env.BUILD_NUMBER}"/>

2、配置自动化构建

   在Hudson的构建可以定期触发(在配置中指定一个计划),或者在项目请求的URL被发现有变化时自动触发:

http://YOURHOST/hudson/job/PROJECTNAME/build

   这允许您创建多样化的Hudson构建。更多详情(特别是在做安全激活模式时)请参阅Remote access API.



 
 
另外,如果您想当Hudson启用安全时从脚本中触发构建,从您项目的配置页选择"Trigger builds remotely"选项,然后在那里添加一个授权标记。现在您就能通过下面的网址触发您的构建:
http://YOURHOST/hudson/job/PROJECTNAME/build?token=YOUR_TOKEN_HERE

2.1通过e-mail(sendmail)构建

   如果您有您系统的Root账户,并且您能使用sendmail[在Unix系统的用户中,Sendmail是应用最广的电子邮件服务器。],我发现它很容易调整/etc/aliases,然后添加下列条目:

hudson-foo: "|/bin/wget -o /dev/null http://YOURHOST/hudson/job/PROJECTNAME/build"

  然后运行“newaliases”命令,让sendmail获取变化。每当有人发送电子邮件到"hudson-foo@yoursystem",这将触发一次新的构建。关于配置sendmail的更多信息请参阅这里

2.2通过e-mail(qmail)构建

  使用qmail[它是一个用来代替UNIX下Sendmail软件的邮件传送程序],您可以按如下方式写/var/qmail/alias/.qmail-hudson:

|/bin/wget -o /dev/null http://YOURHOST/hudson/job/PROJECTNAME/build"

2.3当CVS变化时构建

  每当有人在版本库中提交一次变化就执行构建、也可以从/CVSROOT/loginfo中调用上述程序,或接通CVS通知邮件作为解释媒介。或者你能配置Hudson当发现您的源码控制系统有变化时定期生成和开始新构建。

 

 

二、构建一个Maven2项目

 

   Hudson专门为 Maven2提供了一个作业类型。这个作业类型使Maven2高度集成在Hudson中,并且提供了比一般自由风格软件项目更好的功能。

  • Hudson解析Maven POMs以获得它所需作业的很多信息。因此,需要配置的数量大幅度减少。
  • Hudson监听Maven的执行然后计算该什么时候调用它们。比如,它会在Maven运行测试阶段时自动记录JUnit报告。又假如您运行JavaDoc目标时,Hudson自动记录JavaDoc.

   因此,大多数时候您只需要配置SCM信息,然后按您想要的目标运行,Hudson将计算这一切。

 

1、从模块依赖中自动化构建链接

   Hudson从你的POM中读取你项目中的依赖,如果它们也在Hudson构建过,触发器设置这样一种方式,当您的项目开始一次新构建时自动把这些依赖加入到新构建中。Hudson理解POM中的各种依赖。也就是下面的,

  • 父POM
  • 你项目中的<dependencies>选项
  • 你项目中的<extensions>选项
  • 你项目中的<reporting>选项

  该过程会考虑版本的作用,所以您可以在同一个Hudson中拥有项目的多个版本/分支,它将正确地判断依赖。

  • 大小: 634 Bytes
  • 大小: 1005 Bytes
  • 大小: 569 Bytes
  • 大小: 28.4 KB
  • 大小: 4.5 KB
  • 大小: 47 KB
分享到:
评论
3 楼 lovefly_zero 2013-09-08  
wv1124 写道
使用Hudson调用shell执行make,编译失败hudson确显示成功,如何让hudson显示失败?

能给我看看你的实际情况吗,比如截图等等。
2 楼 wv1124 2013-07-24  
使用Hudson调用shell执行make,编译失败hudson确显示成功,如何让hudson显示失败?
1 楼 lhs295988029 2012-11-07  
如果你正在执行一个Windows批处理命令,该变量将参照使用%VARIABLE_NAME%模式。

这正是我想要的,谢谢啦。

相关推荐

    hudson自动构建文档

    搭建Hudson平台主要包括设置工作目录、配置Jenkins(Hudson的后续项目)环境变量、安装必要的插件以及创建新的构建项目。工作目录用于存储构建结果、日志和其他相关数据。环境变量确保Hudson能正确找到编译器和其他...

    hudson svn maven 自动构建

    【标题】"Hudson SVN Maven 自动构建"指的是在持续集成环境中使用Hudson(现在称为Jenkins)作为工具,结合Subversion(SVN)作为版本控制系统,Maven作为项目管理和构建工具,实现代码的自动构建过程。这个流程的...

    hudson每日构建

    Maven基于项目对象模型(Project Object Model, POM),提供了一种标准化的方式来管理项目依赖、构建过程和报告。Ant则是一个基于XML的任务执行工具,更加灵活,但配置相对复杂。Hudson可以轻松地与这两种工具配合,...

    hudson教程

    3. **构建设置**:保存配置后,Hudson会尝试构建项目。初次构建可能会失败,因为需要设置权限。此时,你可能需要在命令行中输入Hudson的登录密码以及Git的凭证。 4. **构建成功**:当Hudson成功执行构建并显示...

    hudson-3.3.1.war

    For Production use, Hudson 3.3.1 from the Eclipse Foundation is now available. This WAR file is suitable for any O/S. We recommend that users of 3.0, 3.1, 3.2 or 3.3.0 upgrade to this release. his ...

    hudson 中文操作手册

    创建任务是使用 Hudson 的主要功能之一。用户可以创建多种类型的任务,如 Java 项目、Web 项目和其他类型的项目。创建任务需要用户指定任务的名称、描述和执行命令。 4. 运行并监控构建作业 运行并监控构建作业是...

    hudson学习教程Hudson安装与使用,Hudson配置,Hudson插件

    【Hudson 学习教程】 Hudson 是一款强大的持续集成工具,主要负责自动化软件...通过熟练掌握Hudson的安装、配置和插件使用,开发者可以构建出一套自动化、智能化的CI/CD流程,提升整个团队的开发效率和项目交付能力。

    HUDSON持续集成MAVEN项目

    在本教程中,我们将探讨如何设置和配置HUDSON,以便有效地管理和自动化Maven项目的构建过程。 首先,我们需要了解HUDSON(Jenkins)是一个开源的持续集成服务器,它提供了丰富的插件支持,能够与各种版本控制系统、...

    持续开发hudson教程

    登录 Hudson Web 界面,创建新的 Job,填写项目名称,选择构建触发器(如 SVN 触发),配置构建步骤(如 Maven 构建目标),并添加必要的构建参数和环境变量。 3.3.3 Hudson 的构建信息说明 Hudson 会显示每次构建...

    Ruby在Hudson上的分布式构建.pdf

    文章还提到了分布式构建对Hudson的重要性,说明了它使得Hudson能够管理大量项目,并能够在不同的客户端上并行运行构建任务。此外,Hudson提供了对客户端资源监控和环境变量设置等管理功能,这进一步增强了其作为...

    Hudson持续集成实战

    在本教程中,我们将深入探讨Hudson的各个方面,包括安装配置、构建触发、测试集成以及自动化部署。 首先,我们来理解一下什么是持续集成(Continuous Integration,CI)。持续集成是一种软件开发实践,要求开发者...

    Hudson平台搭建及使用

    - **项目监控**:Hudson提供实时的构建状态、测试报告和执行时间,便于团队掌握项目进度。 2. **Hudson平台搭建** - **安装JRE**:确保系统安装了Java 5或更高版本的Java运行时环境(JRE)。 - **安装Tomcat**:...

    m2eclipse-hudson插件

    3. **配置集成**:插件简化了Hudson服务器与Eclipse项目之间的配置,可以方便地设置构建触发器、构建参数和工作空间。 4. **视图集成**:在Eclipse的工作区中,开发者可以查看Hudson服务器上的所有项目,以及它们的...

    hudson安装全过程

    Hudson是一款开源持续集成工具,主要用于自动化构建、测试软件项目,支持多种SCM(如Git、SVN等),并且可以通过插件扩展功能。本文将详细介绍Hudson的安装过程,包括JDK环境配置、Tomcat服务器部署以及Hudson自身的...

    Hudson使用参考手册V1.1.pdf

    4. **构建依赖**:Hudson允许项目间定义依赖关系,当上游项目成功构建后,自动触发下游项目的构建,实现自动化流水线。 5. **测试报告**:Hudson能生成JUnit等测试框架的结果报告,清晰展示测试覆盖率、失败的测试...

    集成工具hudson与maven2的Hudson 安装及配置.docx

    在Hudson中创建新项目时,选择`构建一个Maven2/3(Legacy)项目`。项目配置包括项目名称、描述以及其他选项,如丢弃旧构建的策略,这有助于控制磁盘空间的使用。 在配置完成后,Hudson会根据项目设置自动从源代码...

    Hudson配置手册完美教程

    Hudson 是一款强大的持续集成工具,其主要目标是实现软件项目的自动化构建和测试。作为一款可扩展的引擎,Hudson 提供了多种功能,使得开发者能够更有效地管理和监控他们的开发流程。 Hudson 的核心特性包括: 1. ...

Global site tag (gtag.js) - Google Analytics