探索采用Gradle和RTC来对项目进行持续构建与部署

持续集成作为一种软件开发中的最佳实践被越来越多的项目组采用。因为项目在被持续的构建,">团队成员可以更早地发现代码中被引入的错误,也更为方便的定位到错误是由谁在什么时候提交的哪一部分代码中引入的。由于持续地产出可部署的部件,虽然这些部件没有实现所有的功能,但却是可部署的,这让项目开发的整个过程变得更为可控。同时持续集成与测试驱动开发等其他软件开发最佳实践的结合更能代码健壮性和可靠性。下面我们将开始介绍如何搭建这样一个包含对项目进行持续构建与部署的持续集成环境。

下一代项目构建工具 Gradle

目前,在 Java 软件构建中 Maven 已经成为了事实标准。Maven 提供了预定义流程、组建管理与大量的插件,能方便地对项目进行构建并且提供丰富的功能。同时其 XML 格式的配置文件也比较容易理解,使新手能更快的掌握 Maven 的使用。但是 Maven 也存在着几方面的弊端。首先,XML 的配置文件虽然易懂,但当项目构建过程变的复杂的时候,配置文件会变得非常冗余和难以维护。第二,Maven 是基于插件的,构建中用到的功能全部来自于插件。当插件不提供您需要的功能时,在配置文件中您将无能为力,也就是说 Maven 的配置文件不够灵活。第三,当没有插件满足您的功能需求时,您需要自己开发一个插件,而这个学习曲线是陡增的。

作为下一代项目构建工具 Gradle 使对项目的构建变得更为容易,并且提供更为强大的功能与更好的扩展性能。Gradle 提供对项目进行编译、构建、测试、打包以及部署等功能。Gradle 具有以下特点:

基于 Groovy 之上的 DSL 的构建脚本具有非常好的扩展性并且更容易被组织 提供预定义的构建流程并且可以被容易地定制 真正支持多项目构建 提供多种方式来管理依赖并且兼容 Maven 和 Ivy 的组件库 可以集成并支持 Ant 任务 Gradle wrapper 可以在没有 Gradle 的环境中执行构建

团队协作开发工具 Rational Team Concert

Rational Team Concert(RTC)是基于 Jazz 平台的软件家族的第一个成员。Jazz 是一个用于管理软件开发整个生命周期的可扩展的协作平台。RTC 的架构是基于客户端/服务端模式的,并且是跨平台的。在功能上,RTC 提供包括工作项集成、源代码控制、报表和对构建管理的支持。RTC 为敏捷团队带来高度协作化的开发环境,并且针对中小规模团队进行了优化。RTC 同时集成了与 Ration ClearCase、Ration ClearQuest 以及 SVN 等工具的互操作功能。这些功能将为团队提供极大的可扩展性,帮助企业组建更为出色的开发团队。

项目构建整体架构

现在我们开始来搭建一个基于 Gradle 和 RTC 的持续构建与部署系统。首先对整体架构进行介绍,在后面部分再针对各个重点部分进行详细的说明。

图 1. 架构图

从图中我们可以看到,除了前文提到的 Gradle 与 RTC,还用到了其他一些工具,下面针对架构图的分析中会说明这些工具的作用。整个构建过程由 RTC 的用户发起,用户向 RTC 发起针对某个构建定义的构建请求。同时构建请求也可以由定义在构建定义中的 Schedule 发起。RTC 服务器接受到构建请求后,会根据指定的构建定义与该构建定义所关联的构建引擎,去把一个构建任务发送给构建服务器中的 Jazz Build Engine(JBE)。JBE 是一个运行在构建服务器中的服务,它会一直等待构建任务的到来,一旦收到构建任务,便会根据构建定义中的内容执行相应的构建任务。这里,JBE 会执行定义在构建定义中的 Gradle 命令来启动构建过程。Gradle 会完成项目的编译、测试、归档等项目构建过程,并把构建产物部署到应用服务器 WebSphere Application Server(WAS)和 Nexus 上。Nexus 是一个组件管理仓库,可以用作 Maven 中央仓库的本地镜像,也可以用来管理自己的组件。Gradle 对 Maven 的组件仓库是完全兼容的。在 Gradle 执行完构建过程或则构建失败后,JBE 会收集产生的日志并传回给 RTC 服务器。

根据架构图,需要安装 RTC Server、JBE、Gradle、WAS 和 Nexus。关于各个工具的安装方法,请参考相应的文档。案例的构建环境有三台服务器,三台服务器安装的操作系统是 CentOS 6.4,选用的 RTC Server 版本是 4.0.3M4 。

表 1. 服务器

Server-1 Rational Team Concert Server Server-2 Jazz Build Engine, Gradle Server-3 WebSphere Application Server, Nexus

Rational Team Concert 的配置

在安装完 RTC Server 并配置好 RTC Client 后,第一步是配置构建定义。

图 2. 新建构建引擎

时间: 2024-09-26 18:46:54

探索采用Gradle和RTC来对项目进行持续构建与部署的相关文章

基于Rational Team Concert和Gradle对项目进行持续构建与部署

引言 持续集成作为一种软件开发中的最佳实践被越来越多的项目组采用.因为项目在被持续的构建,团队成员可以更早地发现代码中被引入的错误,也更为方便的定位到错误是由谁在什么时候提交的哪一部分代码中引入的.由于持续地产出可部署的部件,虽然这些部件没有实现所有的功能,但却是可部署的,这让项目开发的整个过程变得更为可控.同时持续集成与测试驱动开发等其他软件开发最佳实践的结合更能代码健壮性和可靠性.下面我们将开始介绍如何搭建这样一个包含对项目进行持续构建与部署的持续集成环境. 下一代项目构建工具 Gradle

使用IBM RTC管理软件项目工程中的日常开发任务

IBM Rational Team Concert(RTC)作为软件协同开发工具,被逐渐应用在大型项目的生产过程中,维系着规模庞大的项目组织团队,有条不紊地管理每一项开发任务,从而为创造高质量的软件产品打下坚实基础. RTC 提供了贯穿整个http://www.aliyun.com/zixun/aggregation/17799.html">开发过程的集成环境,包括:需求定义.迭代计划.源码控制.自动构建.缺陷跟踪.变更管理以及统计报表等功能.本文将通过三个层次,自下而上地详细阐述如何使用

利用Travis CI 让你的github项目持续构建(Node.js为例)

      Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建.对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了.       下面是本人的构建历史:       搭建Travis CI build,需要你有个github账号

eclipse-从svn检出的maven项目怎么在tomcat下部署运行

问题描述 从svn检出的maven项目怎么在tomcat下部署运行 eclipse环境中,从SVN检出的maven项目无法部署在tomcat下, tomcat检测不到可以部署的项目,求教大神,是不是还要进行处理才能运行? 怎样处理? 解决方案 查到的解决方案:右键项目,选择FILE->IMPORT->existing maven project->然后选择你 工程的POM.XML文件即可, 成功的解决了问题,也谢谢楼上的各位大神! 解决方案二: 如何从svn中导出java web项目后部

前端flex后台java的两个独立项目在myeclipse中如何部署到tomcat

问题描述 前端flex后台java的两个独立项目在myeclipse中如何部署到tomcat 我是刚接触前段用flex后台用java的项目,在Myeclipse中分别导入项目后,两个项目怎么编译?以及在deploy project,弹出来的窗口中选择框里没有我刚才导入的那个项目.请问这样的项目怎么部署到tomcat中,如果要手动部署怎么部署?我是新手菜鸟,希望大神能帮我指点详细一点,谢谢,谢谢,谢谢............快过年了,祝您,身体健康!阖家欢乐!财源广进! 解决方案 设置不同的端口即

J2ME项目,“在构建期间出错”怎么修正啊

问题描述 J2ME项目老是出现"在构建期间出错"详细信息里是:在构建期间出错.对项目MIDletCMD运行构建器"Preverification"时出错.IllegalManifestEntryKeyorValue"de.schlichtherle.io.ArchiveFileSystem$ArchiveReadOnlyException:Archivefileisread-only!" 解决方案 解决方案二:友情帮顶..............

web 404-曾经运行过很好的项目也在tomcat中部署了怎么总是404..

问题描述 曾经运行过很好的项目也在tomcat中部署了怎么总是404.. Tomcat 配置好了,项目也部署了,一直都能运行,然后继续做着做着就运行不起来了.. 添加的代码都是一些简单的class,和一个servlet....再一试主页都打不开了... 路径没有问题..web.xml的欢迎页面也设置的正确..各位大神..求助

【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目

备份短信和添加短信 操作系统短信的uri: content://sms/ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.backupsms" android:versionCode="1

探索Alpha-Go —— AI是如何在围棋项目上打败人类的

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 作者介绍:irek Stanek Azimo移动开发部门负责人,人工智能专家.自称梦想很大却在写代码,更多开发博客见http://frogermcs.github.io/ AI工程师的一项必须技能就是理解并能解释领域内的高度技术性的论文.我在AI Nanodegree课程中的一个课题就是分析<自然>杂志上关于AlphaGo的一篇文章--<Google Deepmind system which for