`
juvenshun
  • 浏览: 1595683 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

持续集成,Hudson对Maven2的强大支持

阅读更多

持续集成离不开功能强大而又成熟的工具。其中最重要的三个工具是:构建工具,源码控制系统,持续集成服务器。
持续集成中三者基本的合作流程是:

  1. 持续集成服务器从源码控制系统中签出最新的代码。
  2. 持续集成服务器是用构建工具进行构建。
  3. 持续集成服务器发布构建结果。

由此可见这里持续构建服务器起主导作用,因此该工具的优劣直接关系到工作量及工作效果。


Maven2是很好的构建工具,除此之外Ant的用户群也很广泛。源码控制系统有大家熟悉的CVS,SVN等等,最近,分布式源码控制系统如GIT也流行起来。至于持续集成服务器,CruiseControl 在中国用得比较广泛,我也一直用它来做持续集成,也着实忍受了一些它的缺点,直到发现了Hudson。

 

我以前一直用 Maven2 + SVN + CruiseControl 做持续集成,所以对CruiseControl的配置也算比较熟悉了,但是每次要登陆到服务器上,改XML脚本,然后重启服务器,还担心脚本修改错误,实在不能算是个好的体验。而且,和Maven的集成过程中,遇到了一些比较头疼的问题,CruiseControl中所有东西都需要配置的,测试报告位置,结果构件(artifact)位置,都必须一行一行配置,但是多模块的Maven2项目中,这些位置分布在各个模块中,而且随时可能改变,于是修改CruiseControl的配置成了一件很费精神的体力活。究其原因,是CruiseControl没有针对Maven2做优化。

 

看看Hudson 能给我们Maven2用户带来什么。

  • 一切配置都可以在友好的界面上完成,包括Hudson自身的配置和项目特有的配置,值得注意的是有些配置如MAVEN_HOME和Email Server,只需要配置一次,所有的项目就都能用了。XML?不再需要了,不过如果你坚持,也可以通过XML配置。
  • 支持Maven的模块(Module),Hudson对Maven2做了优化,因此它能自动识别Module,每个Module本身也是一个build job。相当灵活。
  • 测试报告聚合,所有模块的测试报告都被聚合在一起了,结果一目了然,使用CruiseControl,这几乎是件不可能完成的任务。
  • 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

我个人觉得Hudson相比CruiseControl来说是个比较大的进步,尤其是在用户体验方面。如果使用Maven2作为构建工具,Hudson优势尽显。因此我强烈推荐。更多的Hudson特性,随着使用再慢慢发掘吧。

19
0
分享到:
评论
14 楼 fjjiaboming 2011-10-18  
MAVEN multi modules 怎么在hudson上做???
13 楼 surpass_li 2010-06-21  
juvenshun 写道
surpass_li 写道
有中文手册吗?

暂时没有,不过我计划在新的网站 www.juvenxu.com 中写一篇,敬请关注

一直在关注.
12 楼 juvenshun 2010-05-31  
surpass_li 写道
有中文手册吗?

暂时没有,不过我计划在新的网站 www.juvenxu.com 中写一篇,敬请关注
11 楼 surpass_li 2010-05-31  
有中文手册吗?
10 楼 juvenshun 2009-06-03  
pinghe 写道

apache 基金也有一个和 maven 紧密结合的ci系统 Continuum ,不知道和 Hudson 相比有什么优缺点

maven之父搞的公司sonatype在用hudson,而不用apache的continumm,此外sonatype和hudson社区还有一些合作
9 楼 pinghe 2009-06-03  
apache 基金也有一个和 maven 紧密结合的ci系统 Continuum ,不知道和 Hudson 相比有什么优缺点
8 楼 kuisse 2008-11-01  
hi Juven, Help me

现在用hudson做CI,我创建一个项目选择“Build a maven2 project",如何设置”Archive the artifacts“,似乎没有这个功能,需要怎么实现呢?
7 楼 juvenshun 2008-09-08  
to:JessicaCao
1.当你向资源库导入项目的时候,你浏览svn server的repositories下内容,是看不到每个具体的文件的,你只能看到repositories目录下具体有哪几个代码库而已。svn需要帮你管理每个文件的所有不同版本,因此不能简单的将你的文件原封不动的放在那里。不过,当你checkout某个具体的代码库的时候,该代码库的内容,你肯定是能很清楚的看到。
2.用hudson构建项目的时候,肯定是签出某个特定的代码库,如你写的svn://localhost/project1,当然也可以是svn://localhost/project1/module1,只要该目录下的构建本身没问题就OK。找不到你导入的项目?如果你在用VisualSVN Server(http://www.visualsvn.com/server/),用它的server manager,你就能看到server上有哪些代码库(或者直接去E:\svn\repository看有哪些子目录),具体每个代码库里面的内容,签出后查看。
6 楼 JessicaCao 2008-09-08  
你好,我现在在用SVN+hudson ,我的SVN的服务器和客户端都在一台机器上,我的资源库的路径是E:\svn\repository。当我向资源库中导入项目时看不到此项目在资源库中的位置,但checkout时也确实有此项目导出来,
1 我的问题时,究竟这些项目在资源库的什么位置呢?

然后在配置hudson时,我在新建项目里,有个SCM-Repository URL选项
我填写的时svn://localhost/,但我在想,这个资源库里如果有很多项目,那么hudson
中的这个新建的项目是在持续集成那个项目呢?难道全部项目都在一起持续集成?肯定是不会了,

2 所以我的问题是:我怎样能指明是持续集成资源库里的哪个项目呢?是不是可以在Repository URL选项中这样写svn://localhost/project1(加入项目是叫project1),但因为我在资源库里找不到我导入的项目,所以我觉得这么写还是有问题的。希望你能帮助我,谢谢!
5 楼 juvenshun 2008-07-25  
新建项目的时候,有个Source Code Management选项,可以选择Subversion
4 楼 lovefly_zero 2008-07-25  
Hudson没有提供对SVN的支持 只有CVS 郁闷
3 楼 yeah1900 2008-06-27  
持续集成服务器还没用过...
2 楼 juvenshun 2008-06-25  
关于持续集成,有一篇最权威的文章:http://martinfowler.com/articles/continuousIntegration.html

万一你对英文不感冒,偶简单翻译下要点:
实践:
    * 维护一个单独的源码库
    * 自动化构建
    * 构建能够自我测试
    * 每个人每天提交代码
    * 每次提交都应该触发集成机器上主线的构建
    * 保持构建快速
    * 在与产品环境一模一样的环境上测试
    * 让每个人都能很容易的获得最新的可运行构件
    * 每个人都能看到正在发生什么
    * 自动化部署
优点:
    * 降低风险,因为你能在最短时间内看到问题,包括项目最后的发布的问题,一开始就能着手处理。

持续集成包括持续编译,持续测试,数据库持续集成,持续部署,持续审计,持续反馈等等。这里有我的一篇介绍CI的博文:http://juvenshun.spaces.live.com/blog/cns!CF7D1BC903C111E1!284.entry,不过是英文的。
1 楼 Aryang 2008-06-25  
什么叫“持续集成”,能给介绍介绍不?

相关推荐

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

    总的来说,Hudson与Maven2的集成提供了高效、自动化和可扩展的持续集成解决方案,这对于大型开发团队来说至关重要,因为它可以及时发现和修复错误,提高软件质量,并促进团队间的协作。通过遵循上述步骤,开发者可以...

    Hudson+Maven+SVN 搭建持续集成环境

    与 Maven 和 SVN 结合,我们可以构建一个强大的持续集成环境。Maven 是一个项目管理和综合工具,负责构建、依赖管理和项目信息管理。而 SVN(Subversion)则是一种版本控制系统,用于跟踪代码的变更。 **一、安装 ...

    hudson maven 集成

    通过以上步骤,Hudson与Maven的集成完成了,使得开发团队能够利用Hudson的持续集成功能和Maven的强大构建能力,实现高效、稳定的软件开发流程。对于希望了解Maven的程序员来说,这是一个很好的实践起点。

    持续集成工具Hudson入门介绍(结合Ant)

    Hudson作为一款开源的持续集成服务器,因其易用性、丰富的插件支持和强大的自动化构建能力而备受推崇。本篇将详细介绍如何使用Hudson与Ant进行持续集成。 【描述】:虽然没有具体的描述,但可以推测文章可能涵盖了...

    使用Hudson持续集成 ppt

    综上所述,Hudson是一款强大的持续集成工具,它不仅提供了丰富的功能和灵活的配置选项,还能够与其他工具如Maven、Sonar等无缝集成,极大地提高了软件开发的效率和质量。对于任何希望采用持续集成实践的开发团队来说...

    hudson+maven+svn自动化部署

    自动化部署的核心在于构建一个稳定且高效的持续集成/持续部署(CI/CD)环境。为了实现这一目标,通常需要以下几项关键技术组件: 1. **JDK (Java Development Kit)**: - **作用**: JDK 是 Java 开发的基础,提供了...

    持续开发hudson教程

    Hudson 是一款开源的持续集成服务器,提供丰富的插件支持,用于自动化各种构建任务。它具有以下特点: 2.1 Hudson 概述 Hudson 作为一个持续集成平台,允许用户配置定期检查代码仓库,自动触发构建,并对构建结果...

    hudson持续集成包

    【Hudson 持续集成工具详解】 Hudson 是一个开源的持续集成工具,主要用于自动化各种构建任务,如编译代码、运行测试、部署应用程序等。它的主要目标是提高开发团队的生产力,确保软件的质量,并在开发过程中提供...

    持续集成工具之Hudson

    Hudson的由来源于其对持续集成理念的实现,致力于简化CI流程的管理和实施。其目标是让软件开发团队能够轻松地设置和管理CI环境,从而提高开发效率和软件质量。 **安装与配置使用** 安装Hudson非常简单,只需要将`...

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建一

    本篇将详细讲解如何结合Nexus、SVN、Jenkins(Hudson)、Maven以及禅道这五款工具,搭建一个适用于敏捷开发流程和持续集成理念的环境。这个环境能够极大地提升开发效率,简化项目管理流程。 **Nexus**: Nexus是一款...

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二

    在本篇中,我们将深入探讨如何构建一个完整的IT开发流程,包括使用Nexus作为Maven仓库、Subversion(SVN)作为版本控制系统、Jenkins(Hudson)进行持续集成、Maven作为构建工具,以及禅道(ZenDo)作为项目管理软件...

    使用Hudson进行持续集成.doc

    总之,Hudson作为一款强大的持续集成工具,能够帮助开发团队实现自动化构建、测试和部署,提高软件开发的效率和质量。通过正确配置和使用Hudson,可以确保项目的持续集成流程顺畅,并及时发现和修复潜在问题。

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

    《持续集成篇——Hudson...总结来说,Hudson作为一款强大的持续集成工具,可以帮助Java开发团队实现敏捷开发,提升软件质量,减少错误,加快交付速度。通过合理配置和有效利用,Hudson能够成为您项目开发中的得力助手。

    Hudson Maven generate report

    幸运的是,开源社区提供了一款名为Hudson的持续集成(CI)软件,它能帮助我们整合各种组件和插件。本篇将重点讨论如何在Hudson平台上配置PMD和CPD等报告的自动化生成。\n\n**需求**\n- 自动化生成报告(PMD,CPD等)...

    持续集成开发工具Hudson资料收集

    **持续集成开发工具Hudson详解** Hudson是一个开源的、基于Java开发的持续集成工具,它的主要任务是监控持续的构建过程,确保软件项目在开发过程中始终保持可构建和测试的状态。持续集成(Continuous Integration,...

    Hudson持续集成服务器的安装与配置

    Hudson是一款开源的持续...总结来说,Hudson作为一款强大的持续集成工具,其安装和配置过程相对简单,但功能强大,能够有效提升开发效率和代码质量。通过合理配置,Hudson可以帮助团队实现快速迭代和稳定的软件发布。

Global site tag (gtag.js) - Google Analytics