`
lovefly_zero
  • 浏览: 387089 次
  • 性别: 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安装及其配置 hudson平台搭建及使用 Hudson使用参考手册 关于hudson远程自动构建发布 使用hudson_搭建daily_build_系统

    hudson svn maven 自动构建

    hudson svn maven 自动构建 deploy pom

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

    Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,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类代码的持续集成工具,与Subversion和MAVEN、ANT集成的工具,实现每日构建

    每日构建工具 Hudson

    Hudson是一个每日构建的工具,发布出来是一个war文件,发布到Tomcat容器上即可,原始地址是https://hudson.dev.java.net/

    hudson3下载,持续集成工具,java项目自动发布部署工具

    hudson.war是基于Java研发的一款持续集成工具的安装包,hudson是一个可以扩展的持续集成引擎,主要是用它来监控一些定时执行的任务、持续、自动地构建/测试软件项目,有需要的欢迎下载使用。 hudson下载,放在tomcat...

    Hudson持续集成

    1.持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。 2.监控一些定时执行的任务。 Hudson拥有的特性包括: •易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。 •易于配置-所有...

    hudson构建错误及解决方法

    Hudson持续集成工具可以集成Maven工具,并支持其项目的自动化构件,我们可以通过对其配置达到以Maven的形式将构件项目自动化管理起来的目的。

    Hudson持续集成服务器的安装配置和使用

    Hudson持续集成服务器的安装配置和使用,介绍Hudson的安装

    hudson-3.2.2.war

    hudson-3.2.2 放在tomcat下直接打开即可

    持续集成工具hudson配置和使用介绍

    Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架,所以很容易添加特性。例如,一个 ...

    hudson 中文操作手册

    hudson 中文操作手册 hudson 中文操作手册 hudson 中文操作手册

    hudson持续集成包

    hudson持续集成包hudson持续集成包

    Hudson持续集成测试

    如何在电脑上配置Hudson并通过Hudson进行持续集成的测试!

    持续构建工具(hudson)

    直接丢进tomcat即可,访问地址(http://localhost:8080/hudson/)

    hudson安装全过程

    非常简单的Hudson安装步骤,简洁可行,还不用积分哦

    hudson3.2.1

    hudson3.2.1的war包,直接放在tomcat/webapps下运行。 初次运行需要进行插件配置,最好直接访问tomcat环境配置

    Hudson平台搭建及使用

    Hudson平台搭建及使用,作为项目管理及配置来说,用它不错

    持续开发hudson教程

    这是一个用hudson+maven+svn完成持续开发的详细教程。

Global site tag (gtag.js) - Google Analytics