写点什么

使用 Hudson 和 FindBugs 进行持续集成和代码检查

  • 2007-12-18
  • 本文字数:1038 字

    阅读完需:约 3 分钟

最近在 IBM developerWorks 发表的一篇文章中谈到了如何使用开源工具将构建过程中的持续集成(Continuous Integration,CI)和代码检查这两项任务自动化。它描述了如何安装和配置 Hudson ——一款由 java.net 社区开发的 CI 服务器,一旦检测到源码发生变化时,它就会从 Subversion 代码仓库中获取最新代码,并运行 Ant 构建脚本。

作者 Andrew Glover 将如下三项作为了典型 CI 环境设置的主要组件: - 一个使用构建工具(如 Apache Ant)的自动化构建过程。

  • CVS 或 Subversion 之类的源码仓库。
  • CI 服务器,如 Hudson。

Andrew 用了一个 java 应用为例,讲述了如何在 Hudson 服务器上配置 java 项目,从而运行自动化构建。他还展示了如何通过 Hudson 的插件扩展将类似于 FindBugs PMD 的代码分析和软件检查工具进行集成。

在 文章中,作者阐述了如何使用 Hudson 来捕获构建过程的执行时间和测试结果所反映的趋势。在每一次构建中,CI 服务器都会对 JUnit 结果的 XML 文件 进行解析,并生成一个趋势图,用于展示在相邻的两次构建之间,增加了多少个测试。同时,它还可显示出测试是否通过(蓝图表示通过,红图表示失败)。通过 PMD 或者 FindBugs 发现的代码冲突或是缺陷,都会在每一次构建后被记录下来,以供历史分析。 还可以为 Hudson 配置一个 SMTP 服务器,从而在构建失败时向整个项目团队发送邮件提醒。它还支持使用 RSS 作为提醒机制,开发团队可以通过 RSS feeds 来订阅项目的构建状态页面。

Hudson 同时支持 JUnit TestNG 这两种测试框架。它还可以与其它 SCM 工具(如 CVS, ClearCase Accurev )和构建工具(如 Maven Gant )进行集成。在 Hudson 网站上列出了所有的插件,我们可以看到,它可以和众多的开源或是商业的 SCM、代码覆盖和问题跟踪工具进行集成。

在 developerWorks 上的另外一篇有关 CI 话题的文章中,Paul Duvall 向读者展示了在建立 CI 环境时的一些最佳实践,并指出如何避免一些错误做法(他把它们称之为 CI 反模式)。这些最佳实践是:

  • 开发者应该频繁提交小段代码,而不是等上很长时间以后,一次性的提交很多变化;
  • 当构建失败时,CI 服务器应该立刻通知项目团队;
  • 应当使用类似 E-mail 或者 RSS 之类的反馈机制来与项目团队报告构建状态;
  • 构建状态反馈应该简洁,只应该包括与构建相关的信息;
  • 构建服务器应该有足够的硬件配置,从而进行更快的构建;
  • 项目团队应遵循“管道式构建”的原则来异步执行那些需要较长时间才能运行完的构建过程。

查看英文原文 Continuous Integration and Code Inspection with Hudson and FindBugs

2007-12-18 00:1811401
用户头像

发布了 197 篇内容, 共 52.5 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

DxO PhotoLab 7 for Mac(专业照片编辑软件)v7.3.0.43激活版

影影绰绰一往直前

Pocket Yoga for mac(口袋瑜伽)v14.3.0激活版

影影绰绰一往直前

AI数字人源码部署,打造自己品牌!

青否数字人

类似 Microsoft Project 的12款在线项目管理工具

PingCode

项目管理 项目经理 项目管理工具

Perfectly Clear Workbench for Mac 永久激活版下载

影影绰绰一往直前

4K Video Downloader Plus Pro for Mac(4K视频下载器)v1.4.0激活版下载

影影绰绰一往直前

一文带你揭秘淘宝终端技术

阿里技术

基础设施 招聘 淘宝 终端技术

得物云原生容器技术探索与落地实践

得物技术

云原生 技术分享

深入了解LLaMA大模型

百度开发者中心

深度学习 nlp 大模型

为什么要将应用微服务化?

伤感汤姆布利柏

程序员 微服务 低代码 架构师 JNPF

如何写好大模型提示词?来自大赛冠军的经验分享(基础篇)

Baihai IDP

人工智能 AI LLM Prompt Prompt Engineering

喜讯!无垠智能模糊测试系统入选“2023软件供应链优秀成果”

云起无垠

深入理解WebSocket ACK:关键技术提升数据传输的可靠性

Apifox

前端 后端 websocket 协议 WebSocket ACK

Meta Llama大模型:引领人工智能创新

百度开发者中心

人工智能 深度学习 大模型

如何提升时序数据多表低频场景的写入性能?一文详解

TDengine

tdengine 时序数据库

Perfectly Clear Video for Mac(AI视频增强工具)v4.6.0.2632激活版

影影绰绰一往直前

数字人源码独立部署的教程!

青否数字人

数字人

DxO PureRAW for Mac(RAW照片处理器)v3.9.0中文激活版

影影绰绰一往直前

如何在苹果手机上进行文件管理

即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]

JackJiang

网络编程 即时通讯 IM

FotoMagico for Mac(专业幻灯片制作软件)v6.5.4激活版

影影绰绰一往直前

DxO ViewPoint 4 for Mac(照片修复校正工具)v4.13.0.282激活版

影影绰绰一往直前

Navicat Charts Creator for Mac(Navicat图表创建器)v1.2.15激活版

影影绰绰一往直前

IPQ9574: High-performance WiFi7 wireless network chip leading the future

wallysSK

AI数字人给教育行业带来机会!

青否数字人

活了三十多年终于知道单模光纤与多模光纤

小齐写代码

Video-LLaMA:为AI大模型注入视听觉

百度开发者中心

人工智能 大模型

数据展现之道:精心打造可在线浏览的动态数据报表

EquatorCoco

数据库 动态数据

Boxy SVG for Mac(矢量图编辑器)v4.21.2免激活版

影影绰绰一往直前

【第七在线】服装企业对于智能商品计划系统的误区有哪些?

第七在线

Code Llama:基于 Llama 2 的 AI 代码生成大模型

百度开发者中心

人工智能 大模型 代码生成

使用Hudson和FindBugs进行持续集成和代码检查_Java_Srini Penchikala_InfoQ精选文章