持续集成 Java手册

国内首本IntelliJ IDEA软件开发与应用手册,GitHub已收获百万点赞 为什么要写这篇文章? IntelliJ IDEA简称IDEA,是Java语言的集成开发环境,在业界被公认为是最好的Java开发工具之一。 IntelliJ IDEA是JetBrains公司的主要产品,除了IntelliJ IDEA之外,像PHPStorm、PyCharm、WebStorm等优秀的开发工具也是这家公司的产品。 下面给大家分享一份从阿里大佬手中得到的《IntelliJ IDEA软件开发与应用手册》 IntelliJ IDEA软件开发与应用手册 第1章Intell 阅读详情

持续集成 Java手册

一、概念

Martin Fowler的文章:Continuous Integration  中文翻译:持续集成

二、工具

传统工具:VisualStudio.Net,VisualSourceSafe,Rational ClearCase

自动编译工具:Ant

回归测试工具:JUnit

代码检查工具:CheckStyle

持续集成工具:CruiseControl

三、步骤

  • CruiseControl监控远程版本控制系统的变化

  • 变化发生时CruiseControl调用编译工具进行编译(Ant等)

  • 编译成功后调用JUnit进行回归测试

  • 编译成功后调用CheckStyle进行代码检查

  • 完毕后将编译结果、测试结果、代码检查结果发送至开发人员、主管经理,并发布至网站,甚至报警器

    所有这一切都是按照编制好的脚本自动进行的

四、实施示例

目前我们使用的是ClearCase,主控软件为CruiseControl,其脚本文件为cccc.xml

  • 配置远程版本控制系统

< modificationset quietperiod =" 30 ">
  < clearcase branch =" main " viewpath =" D:/cc_view/chelseafc/Nucleus2.0/Port " recursive =" true " />
  </ modificationset >
  • 配置编译工具

< schedule interval =" 30 ">
  < ant antscript =" C:/Java/JBuilder2005/thirdparty/ant/bin/ant.bat " buildfile =" D:/cc_view/chelseafc/Nucleus2.0/Port/clearcase-build.xml " target =" cleanbuild " multiple =" 1 " />
  </ schedule >
  • 配置测试用例(在ant的配置文件中)

< target name =" test " depends =" init " description =" Run unit tests ">
  < delete dir =" ${junit.results} " />
  < mkdir dir =" ${junit.results} " />
- < junit fork =" yes " haltonfailure =" yes ">
- < classpath >
  < pathelement location =" ${build.dir} " />
  </ classpath >
  < formatter type =" plain " usefile =" false " />
  < formatter type =" xml " />
- < batchtest todir =" ${junit.results} ">
  < fileset dir =" ${build.dir} " includes =" **/*Test.class " />
  </ batchtest >
  </ junit >
  </ target >
  • 配置报告形式
< publishers >
  < currentbuildstatuspublisher file =" currentbuild.txt " />
- < htmlemail mailhost =" mail.chelseafc.com.cn " returnaddress =" workflow_engine@chelseafc.com.cn " subjectprefix =" ContinuousIntegration: " buildresultsurl =" http://chelsea:8044/cruisecontrol/buildresults " spamwhilebroken =" true " xsldir =" F:/software/Agile.Net/cruisecontrol-2.2/reporting/jsp/xsl " css =" F:/software/Agile.Net/cruisecontrol-2.2/reporting/jsp/css/cruisecontrol.css " logdir =" D:/Tomcat 4.1/webapps/cruisecontrol/samplelogs ">
  < always address =" chelsea@chelseafc.com.cn " />
  < always address =" ajax@chelseafc.com.cn " />
  < map alias =" chelsea " address =" chelsea@chelseafc.com.cn " />
  </ htmlemail >
  </ publishers >
  • 其中CruiseControl暂时没有提供代码检查工具的支持,建议使用Ant来调用CheckStyle,示例如下(没有真正运行过):
< target name =" web.checkstyle ">
  < mkdir dir =" ${target.temp}/checkstyle " />
  < mkdir dir =" ${target.web}/checkstyle " />
- < taskdef resource =" checkstyletask.properties ">
- < classpath >
  < fileset dir =" ${support.tools}/checkstyle31 " includes =" **/*.jar " />
  </ classpath >
  </ taskdef >
- < copy file =" ${support.tools}/checkstyle31/custom.xml " overwrite =" true " tofile =" ${target.temp}/checkstyle/custom.xml ">
- < filterset >
  < filter token =" source.java " value =" ${basedir}/${source.java} " />
  < filter token =" target.checkstyle " value =" ${basedir}/${target.temp}/checkstyle " />
  </ filterset >
  </ copy >
- < checkstyle config =" ${target.temp}/checkstyle/custom.xml " failOnViolation =" false ">
  < fileset dir =" ${source.java}/main " includes =" **/*.java " />
  < formatter type =" plain " />
  < formatter type =" xml " toFile =" ${target.temp}/checkstyle/checkstyle_errors.xml " />
  </ checkstyle >
  < style basedir =" ${target.temp}/checkstyle " destdir =" ${target.web}/checkstyle " includes =" checkstyle_errors.xml " style =" ${support.tools}/checkstyle31/checkstyle-noframes.xsl " />
  </ target >

五、几点提示

  • CruiseControl会自动根据本地ClearCase的View监控远程VOB
  • 其实除了监控远程版本控制系统外其它的任务都可以由Ant来完成,CC只负责监控变化并调用Ant即可
  • CruiseControl2.2的<htmlemail>好像无法在jdk5.0下运行,如果需要集成jdk5.0的项目,则需要为Ant的<javac>指定source和target,而CruiseControl2.2依然用jdk1.4启动
  • 可以为cruisecontrol.bat加入启动参数“-port 8055”,这样可以用JMX(http://localhost:8055)来控制cc
  • 最好避免中文路径,否则就需要手工为几个Xml格式的文件,如cc的report Servlet的Web.xml等加入编码方式“<?xml version="1.0" encoding="UTF-8" ?> ”,或者将中文路径映射为虚拟硬盘:“subst Y: "D:/cc_view/chelsea/Platform/开发/Nucleus2.0/Source"”
  • 中文log无法正常显示时,需要设置CruiseControl配置文件中<log>元素的“encoding”属性,如:
    < log dir =" D:/Tomcat 4.1/webapps/cruisecontrol/samplelogs " encoding =" utf-8 ">
      < merge dir =" D:/cc_view/chelseafc/Nucleus2.0/Port/test-results " />
    </ log >
  • 编译失败后,在下次checkin之前,一般不需要重新编译,这时可设置<project >的“buildafterfailed”属性为false来避免重新编译
  • <htmlemail>的几个属性好像没有缺省设置,虽然文档里说从2.1.7开始有缺省设置,包括xsldir,css,logdir
  • 各种工具的安装、使用,在各自的文档里都非常详细,网上亦有无数资源

六、参考资料

39、Java应用程序的文档编写 本文详细介绍了如何为Java应用程序编写高质量的文档,涵盖JavaDoc工具的使用、注释规范、文档最佳实践、README与CHANGELOG编写、用户手册与技术文档结构、文档生成工具(如MkDocs和Sphinx)、文档的版本控制与持续集成、文档质量保证、国际化处理、文档维护与发布等内容。通过这些实践方法,可以提高代码的可读性和可维护性,并为用户提供清晰、详尽的技术文档支持。 阅读详情

相关推荐

Java开发实践手册(泰山版):编程规范与最佳实践

本文还有配套的精品资源,点击获取 简介:《Java开发手册(泰山版)》为Java开发者提供了一个全面的编程规范与最佳实践指南,旨在提高代码质量与开发效率。涵盖了Java的核心概念、基本语法、面向对象编程、异常处理、集合框架、多线程、输入/输出、反射与注解、JVM内存模型、性能优化及最佳实践等关键章节。无论对新手还是资深开发者而言,本书都是提升编程技能和保持知识更新的重要资源...

weixin_35749796的博客 1681

持续集成 .Net手册

持续集成 .Net手册一、概念Martin Fowler的文章:Continuous Integration  中文翻译:持续集成二、工具传统工具:VisualStudio.Net,VisualSourceSafe,Rational ClearCase自动编译工具:NAnt,NAntContrib回归测试工具:NUnit代码检查工具:FxCop持续集成工具:Crui

cxzhq2002的杂记 1557

阿里巴巴泰山版开发手册实战精要

在实际项目中,开发者经常会遇到内置异常类型不足以描述特定错误情况的情况,这时就需要自定义异常。自定义异常通常继承自Exception类(检查性异常)或类(非检查性异常),并可能包含额外的错误信息和上下文。自定义异常的示例代码如下:异常处理的另一部分是日志记录,它是跟踪异常发生和处理情况的重要手段。Java中常用的日志记录工具有log4jSLF4J等。良好的日志记录能够帮助开发人员诊断问题,对异常进行追踪。

weixin_28793831的博客 953

如何保证一个项目可持续集成发布

    这俩天稍微有点空,赶紧补补功课。       持续集成就是利用所谓的cc,cruisecontrol工具对我们的项目进行持续的测试,得以保证项目可以保持持续的可发布状态。       但是光靠一个cc,肯定是无法解决这个问题的,还需要一套机制,这个就是敏捷管理。 需要我们把项目的需要开始调研做起,就要专业有深度,过程一丝不苟,进行严格的质量管控和结果输出,对于正式发布上线要严肃认...

漂游着贰号 293

阿里巴巴Java开发手册合集(版本1.2.0至1.3.0)

本文还有配套的精品资源,点击获取 简介:《阿里巴巴Java开发手册》提供了一套详尽的规范和指南,旨在提升Java开发的效率和质量。内容涵盖了编码规范、设计原则、异常处理、性能优化等多个关键领域。本合集包含了从1.2.0到最终版1.3.0的所有内容,为Java开发者提供全面的编程指导。手册详细讲解了如何通过有效的命名、注释、空格与缩进来提高代码清晰度;遵循设计原则来优化代码结...

weixin_42588672的博客 1337

CAD制图

CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。·CAD三维开发是指使用计算机程序和工具来创建、编辑和操作三维模型、图形和设计的过程。它在工程、建筑、制造和游戏等领域广泛应用。CAD三维开发可能涉及到复杂的图形算法、性能优化、并行计算等方面的内容,因此需要深入学习和实践,以提高开发的效率和质量。

RZer的博客 1651

ClearCase 介绍

出处:http://www.cnblogs.com/icebird/一、        软件配置管理的必要性 没有任何一个行业象计算机工业发展的如此迅速。在今天的软件产业更是如此,技术和产品的更新日新月异令所有技术人员和管理人员都感到明显的压力。软件产品的开发,市场投放速度成倍增长;Internet/Intranet应用的发展改变着软件的开发,传递,和分发方式;不断提高的软件质量的要求,使越来越多

大漠狂沙的专栏 5589

AB SCIEX质谱数据分析实战:从PeakView入门到精通

质谱分析是现代生命科学和药物研发中不可或缺的核心技术,它通过测量离子的质荷比来鉴定和定量化合物。其基本原理是将样品离子化后,在电场和磁场中按质荷比分离,最终形成质谱图。这项技术的核心价值在于能够从复杂混合物中高灵敏度、高特异性地获取化合物的定性和定量信息,广泛应用于代谢组学、蛋白质组学、环境监测和药物分析等领域。在实际工作中,高效的数据处理平台至关重要。以AB SCIEX质谱仪生成的.wiff文件为例,其原始数据需要专业软件进行解析。PeakView软件正是这样一个综合平台,它集成了高级数据处理、谱图解析和

weixin_29053577的博客 307

终极指南:如何用阿里巴巴Java编码规范插件p3c提升代码质量

阿里巴巴Java编码规范插件p3c是一款基于PMD实现的IDE插件,能够帮助开发者在编码过程中实时检测并修复不符合阿里巴巴Java开发手册的代码问题。本文将详细介绍如何安装、配置和使用这款插件,让你的代码更规范、更高效。 ## 为什么选择p3c插件? 在团队开发中,统一的编码规范是保证代码质量和可维护性的关键。阿里巴巴Java编码规范插件p3c整合了《阿里巴巴Java开发手册》中的所有规范,通

gitblog_00376的博客 657

MarkDown简介(深度解析MarkDown用法)

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...

酷酷的旭 7341

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

Docker的应用场景,终于全搞明白了

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!t+JVM)!**《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

2401_84408418的博客 1572

提取游戏音频文件.bnk

bnk其实是一种对音频的加密方式,一个.bnk文件中通常包含了多个语音文件,一般可以使用Wwise-Unpacker来解码.bnk格式文件该工具命名没有规律,需要手动整理文件名。市面上很多的游戏都把音频文件打成.bnk文件(比如永劫无间),用这种方式可以将你想要的游戏的音频都提取出来,本文内容仅供自己娱乐。

类人_猿的博客 8748

代码文档生成工具Doxygen教程及实例

程序员的很多文档,特别是有代码的文档,绝大部分都是由一款文档生成工具【Doxygen】生成。 什么是Doxygen? Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件。通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞铁达尼号同样的辛苦。 大部分有用的批注都是属于针对函式,类别等等的说明。所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用你的程序代码的人而言将会减少许多的负担。不过,反过来说,整.

qq_41854911的博客 1万+

YOLOv12改进策略【卷积层】| CVPR-2020 利用DynamicConv 动态卷积 结合A2C2f进行二次创新,提高精度

在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。

Limiiiing的博客 827

深度解析 Android 开发工程师岗位:技术栈、职责与面试全攻略

本文深度剖析Android开发工程师职位要求,从核心技术栈到面试准备进行全面解读。关键点包括:1)掌握Kotlin语言特性和Jetpack组件;2)具备UI开发、性能优化和逆向分析能力;3)理解MVVM架构和Room数据库;4)熟悉常用工具链和开发流程。文章提供了详细的面试题库及解析,涵盖基础概念、UI优化、架构设计等方向,并给出职业发展建议:夯实基础、拓展技术广度、培养工程素养。旨在帮助开发者系统性地准备Android岗位求职,把握移动开发领域的技术趋势。

郑伟强dev的专栏 173

揭秘《阿里巴巴Android开发手册》

前言\\不久之前谷歌的Android P预览版问世,几大手机厂商也联合推出了快应用,我们看到了移动开发迎来了新的活力,移动应用已经渗透到人们生活的方方面面,那么阿里继去年推出Java手册之后,在春节期间推出的《阿里巴巴Android开发手册》的目的是什么呢?为此,InfoQ第一时间采访了阿里巴巴高级无线开发工程师、手册的主要作者之一芸墨,为大家揭开其背后创作故事,并在此与大家分享采访结果。\\An...

cpongo5 113

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CruiseControl持续集成

目前做的项目还未用到持续集成,不过接下来马上会用到持续集成,为了方便学习和掌握持续集成的方法,搜索了如下资料:        1.持续集成java手册: http://blog.youkuaiyun.com/chelsea/article/details/190545        2. 使用SVN+CruiseControl+ANT实现持续集成:http://www.cnblogs.com/shis

417

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

阿里Java开发手册

传送门 github 阿里巴巴Java开发手册(详尽版).pdf

Angus的博客 197

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IDEA安装阿里巴巴Java开发手册

IDEA安装阿里巴巴Java开发手册 https://shimo.im/docs/XkChcwvpcRRgdJRc/ 《IDEA配置阿里巴巴Java开发手册》

weibiao0105的博客 306

阿里巴巴Java开发手册(详尽版)

pdf文件: 阿里巴巴Java开发手册(详尽版).pdf https://www.lanzous.com/i4jauib密码:9tz4 转载于:https://www.cnblogs.com/ltian123/p/11011840.html

weixin_33781606的博客 320
上一篇: 持续集成 .Net手册
下一篇: nucleus.mockaop.net:opensource .net aop framework
platformlib
博客等级 码龄22年 1粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值