- 浏览: 390142 次
- 性别:
- 来自: 株洲
文章分类
最新评论
-
自闭丨先生:
melin 写道缺少合并web.xml文件功能。不过使用了se ...
使用Maven WAR插件实现多Web应用间的重迭运用 -
331008019:
Hudson 系列的文章写得够细、够全! 学习了…
如何正确在Hudson中使用Maven构建Job -
selina2011874:
请问Hudson也就是现在的jenkins 能选择对某个版本的 ...
使用Hudson进行持续集成(九) -
lovefly_zero:
wv1124 写道使用Hudson调用shell执行make, ...
Use Hudson之项目构建 -
wv1124:
使用Hudson调用shell执行make,编译失败hudso ...
Use Hudson之项目构建
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" 时,您将只能:
- 只少构建一次项目(它会失败),但是Hudson会创建HUDSON_HOME/jobs/PROJECTNAME/workspace这样的结构。
- 复制该项目文件至HUDSON_HOME/jobs/PROJECTNAME/workspace下。
- 再构建并且适当地配置。
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配置为签出主干,该环境变量将不会被设置。 |
如果你使用一个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中拥有项目的多个版本/分支,它将正确地判断依赖。
评论
能给我看看你的实际情况吗,比如截图等等。
这正是我想要的,谢谢啦。
发表评论
-
使用Email-ext替换Hudson的默认邮件通知
2011-05-11 11:16 0简述 该插件能允许你运用到邮件通知的方方面面,比如在发送邮件 ... -
如何正确在Hudson中使用Maven构建Job
2010-12-09 00:22 3208相信大家都很有一个疑惑,就是我们在本地使用Hudson 构建M ... -
使用matrix security对Hudson进行细粒度Job的安全控制
2010-09-19 17:04 2813写在前面的话 以前有 ... -
Use Hudson之管理Hudson
2009-11-25 17:22 4748译自:http://wiki.hudson-ci.org/ ... -
Hudson插件之按主题分类(下)
2009-11-20 12:44 5277混合插件 Build-timeout Plugin ... -
Hudson插件之按主题分类(中)
2009-11-17 16:28 8571集成外部站点/工具 Hudson还可以通过这些插件整合外部 ... -
Hudson插件之按主题分类(上)
2009-11-12 16:05 12694按主题管理插件 源代码管理 Hudson本身支持S ... -
Hudson插件之Active Directory plugin (活动目录)
2009-10-30 14:55 3156摘自http://wiki.hudson-ci.org/ ... -
Use Hudson之文件指纹识别
2009-05-12 17:30 2682译自:http://wiki.huds ... -
Use Hudson之最佳实践
2009-05-04 17:21 5872简介:持续集成(CI)的测试执行和趋势的自动化已经大大 ... -
Use Hudson之标准安全设置
2009-04-29 18:06 5103简介:本文讨论了最常 ... -
使用Hudson进行持续集成(九)
2009-01-13 13:59 14065构建轨道 译自 ... -
使用Hudson进行持续集成(八)
2009-01-13 13:58 13963运行并监控作业 译自: http://www.javaw ... -
使用Hudson进行持续集成(七)
2009-01-13 10:49 22769译自: http://www.javawor ... -
使用Hudson进行持续集成(六)
2009-01-08 10:06 14160译自: http://www.javawor ... -
使用Hudson进行持续集成(五)
2009-01-07 18:23 14574译自: http://www.javaworld.com/j ... -
使用Hudson进行持续集成(四)
2009-01-07 12:14 12445译自: http://www.javaworld.com/j ... -
使用Hudson进行持续集成(三)
2009-01-06 18:22 14410译自: http://www.javaworld.com/j ... -
使用Hudson进行持续集成(二)
2009-01-06 11:57 17514译自: http://www.javawor ... -
使用Hudson进行持续集成(一)
2009-01-05 18:31 25675译自: http://www.javaworld.co ...
相关推荐
搭建Hudson平台主要包括设置工作目录、配置Jenkins(Hudson的后续项目)环境变量、安装必要的插件以及创建新的构建项目。工作目录用于存储构建结果、日志和其他相关数据。环境变量确保Hudson能正确找到编译器和其他...
【标题】"Hudson SVN Maven 自动构建"指的是在持续集成环境中使用Hudson(现在称为Jenkins)作为工具,结合Subversion(SVN)作为版本控制系统,Maven作为项目管理和构建工具,实现代码的自动构建过程。这个流程的...
Maven基于项目对象模型(Project Object Model, POM),提供了一种标准化的方式来管理项目依赖、构建过程和报告。Ant则是一个基于XML的任务执行工具,更加灵活,但配置相对复杂。Hudson可以轻松地与这两种工具配合,...
3. **构建设置**:保存配置后,Hudson会尝试构建项目。初次构建可能会失败,因为需要设置权限。此时,你可能需要在命令行中输入Hudson的登录密码以及Git的凭证。 4. **构建成功**:当Hudson成功执行构建并显示...
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 是一款强大的持续集成工具,主要负责自动化软件...通过熟练掌握Hudson的安装、配置和插件使用,开发者可以构建出一套自动化、智能化的CI/CD流程,提升整个团队的开发效率和项目交付能力。
在本教程中,我们将探讨如何设置和配置HUDSON,以便有效地管理和自动化Maven项目的构建过程。 首先,我们需要了解HUDSON(Jenkins)是一个开源的持续集成服务器,它提供了丰富的插件支持,能够与各种版本控制系统、...
文章还提到了分布式构建对Hudson的重要性,说明了它使得Hudson能够管理大量项目,并能够在不同的客户端上并行运行构建任务。此外,Hudson提供了对客户端资源监控和环境变量设置等管理功能,这进一步增强了其作为...
在本教程中,我们将深入探讨Hudson的各个方面,包括安装配置、构建触发、测试集成以及自动化部署。 首先,我们来理解一下什么是持续集成(Continuous Integration,CI)。持续集成是一种软件开发实践,要求开发者...
- **项目监控**:Hudson提供实时的构建状态、测试报告和执行时间,便于团队掌握项目进度。 2. **Hudson平台搭建** - **安装JRE**:确保系统安装了Java 5或更高版本的Java运行时环境(JRE)。 - **安装Tomcat**:...
3. **配置集成**:插件简化了Hudson服务器与Eclipse项目之间的配置,可以方便地设置构建触发器、构建参数和工作空间。 4. **视图集成**:在Eclipse的工作区中,开发者可以查看Hudson服务器上的所有项目,以及它们的...
Hudson是一款开源持续集成工具,主要用于自动化构建、测试软件项目,支持多种SCM(如Git、SVN等),并且可以通过插件扩展功能。本文将详细介绍Hudson的安装过程,包括JDK环境配置、Tomcat服务器部署以及Hudson自身的...
在Hudson中创建新项目时,选择`构建一个Maven2/3(Legacy)项目`。项目配置包括项目名称、描述以及其他选项,如丢弃旧构建的策略,这有助于控制磁盘空间的使用。 在配置完成后,Hudson会根据项目设置自动从源代码...
Hudson 是一款强大的持续集成工具,其主要目标是实现软件项目的自动化构建和测试。作为一款可扩展的引擎,Hudson 提供了多种功能,使得开发者能够更有效地管理和监控他们的开发流程。 Hudson 的核心特性包括: 1. ...
Hudson 是一个开源的持续集成工具,主要用于自动化各种构建任务,如编译代码、运行测试、部署应用程序等。它的主要目标是提高开发团队的生产力,确保软件的质量,并在开发过程中提供快速反馈。Hudson 的优势在于其...