posts - 11, comments - 3, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2006年7月20日

http://www.javaresource.org/clearcase/clearcase-73883.html

我这都是转的一些东西

posted @ 2006-08-10 11:18 eddy liao 阅读(366) | 评论 (1)编辑 收藏

http://www.chinaitpower.com/2005September/2005-09-13/205598.html

Rational ClearCase是一个业界领先的软件配置管理工具,Rational ClearQuest则是IBM Rational在变更管理和缺陷跟踪方面的软件。业界对于变更管理软件和配置管理软件的集成有着强烈的需求,因此IBM Rational也提供了ClearCase和ClearQuest集成的功能

1 概述

Rational ClearCase是一个业界领先的软件配置管理工具,Rational ClearQuest则是IBM Rational在变更管理和缺陷跟踪方面的软件。业界对于变更管理软件和配置管理软件的集成有着强烈的需求,因此IBM Rational也提供了ClearCase和ClearQuest集成的功能。

所谓Base ClearCase和ClearQuest的集成,就是将ClearQuest中的变更请求(Change Requeset)关联到一个或多个ClearCase中元素(Element)的版本(Version)上。一个变更请求可以被关联到一个或多个版本上,实施变更的这些版本的集合被称作变更请求的变更集(Change Set)。一个版本可以被关联到一个或多个变更请求,这些变更请求的集合被称作版本的请求集(Request Set)。

集成对于不同的角色,有以下不同的功能:

一个项目经理指定在什么情况下需要让用户关联版本到变更请求。也可以指定关联变更请求的VOBs,branches,以及element types。

ClearQuest的管理员添加ClearCase的定义到ClearQuest的schema中。这使得变更请求可以显示与它关联的变更集。

使用ClearCase进行开发的人员,可以在Check Out或者Check In一个版本的时候,将这个版本关联到一个或者更多的变更请求上。也可以查看一个变更请求的变更集。

在这篇文章中,我们将对Base ClearCase与ClearQuest集成的设计原理和运行环境的搭建与设置进行介绍,最后再提供一些操作范例。


2 基本概念

2.1 集中方式(Central Server)

所谓的Central Server就是将所有的脚本文件及配置文件放在一个目录,当进行集成的时候,ClearCase就会在这个目录中寻找配置文件(config.pl)、cqcc_launch脚本以及其他的代码,而不是使用本地默认目录的相应文件,因此提高了安全性和可维护性。与之对应的本地方式(Local Server)则是使用本地ClearCase目录中的配置文件、脚本以及其他代码。

2.2 批处理(Batching Enabled)

就是将一个ClearCase操作中的所有与ClearQuest相关的操作,记录到一个批处理文件中,ClearCase操作完成之后,再将这些操作一次性写入到ClearQuest中。从而降低了登陆ClearQuest和在查询ClearQuest的次数,大大的提高了性能。

2.3 序列(Batching Series)

批处理序列是将批处理的概念进一步扩展的产物。ClearCase认为所有进行的ClearCase都是在一个批处理当中,它记录所有与ClearQuest相关的操作到批处理文件当中,以便在以后的某个时间完成与ClearQuest相关的操作。

2.4 检入后提交(Postcheckin commit)

就是在ClearCase的Check in完成之后,再进行ClearQuest的操作。一般的情况下,在ClearCase的Check in操作完成之后,才进行与ClearQuest相关的操作。这样在Check in操作失败的情况下,会造成ClearCase和ClearQuest的数据不一致。启用此功能则可以避免这种错误。

2.5 自动关联(Auto-association)

就是在将变更请求关联到某个版本的时候,不需要手工选择,而是靠预先设置的请求ID或者根据ClearCase操作的注释自动提取请求ID,来决定关联的请求。

2.6 使用CQWeb方式的集成

在本地没有安装ClearQuest,或者不愿意使用本地的ClearQuest的情况下,可以使用CQWeb的方式使用CQWeb Server上的ClearQuest来实现ClearCase和ClearQuest的集成。


3 何时采用Base ClearCase

我们知道UCM是一种对版本控制的配制管理流程,而UCM是基于Base ClearCase的管理流程演变而来的。因此掌握并了解Base ClearCase的管理就显得至关重要。Base ClearCase包含了一系列功能,它们能够使开发人员做到并行开发,项目管理者也能通过制定相关的规则来使开发工作有序的进行。

在开发过程中,Base ClearCase应用"分支(Branch)"的方法来允许开发人员进行并行开发。任何在配制管理下的元素(Element),例如:文本文件,程序原代码等,都会生成一个主分支,而主分支下还可以有多个下属分支,它们的作用是用来支持在主分支上的开发。Base ClearCase 允许创建复杂的分支体系。在开发过程中,通过视图(View)可以访问特定元素集的特定版本,而这通过修改视图的规则(Config Specification)就可以实现。UCM也使用"分支"的方法,但是这些分支不需要用手工来操作,而是通过"流(Stream)"来实现,通常情况下,一个项目存在一个集成流和多个开发流。

在项目管理方面,我们通过对项目的源文件打基线(Baseline)来呈现项目早期较稳定版本的雏形,并且基线可以用来连接一系列相关的源文件,比如像源代码,测试计划等等。UCM自动完成基线的创建,而Base ClearCase则通过对元素(Elements)的版本打标签来创建基线。

通过以上对UCM和Base ClearCase的比较,因此在一个项目不是很大,并且业务流程相对简单的情况下适合用Base ClearCase。


4 运行环境的搭建与设置

4.1 运行环境的搭建

在Base CCCQ集成的过程中,运行环境的搭建尤为重要。


图 (01) 系统结构图

首先,需要在ClearCase客户端和ClearCase注册服务器安装ClearCase。在ClearQuest Unix服务器和ClearQuest Windows服务器安装ClearQuest。准备数据库服务器。在ClearQuest Unix服务器上配置好DBSet,并添加User DB。之后就可以配置集成了。

4.2 ClearCase与ClearQuest集成的配制

集成的配置需要在ClearCase和ClearQuest上分别进行配置,才能完成。在ClearCase侧,需要对VOB配置。当对一个VOB配置了集成之后,针对与这个VOB的ClearCase相关操作(例如CheckOut, CheckIn)都会激发脚本对ClearQuest数据库的访问,进而完成Base CC和CQ的集成。

在ClearQuest侧,需要在数据库中添加ClearCase的定义,只有加入了定义之后,数据库中的请求的变更集才能够显示出来。

下面具体介绍配置过程。

4.2.1 将ClearCase package加入到一个ClearQuest DBset

由于ClearQuest schema包含了一些与多个ClearQuest user databases相关联的特性,例如数据记录的类型,区域,和形式。在开发人员将ClearCase中文件的版本与ClearQuest用户数据库中的变更请求相联系的时候,必须将ClearCase的特性也加入到ClearQuest schema,此过程要在Windows端完成且过程如下所述:

  • 开始 -> 程序 -> Rational Software -> Rational ClearQuest -> ClearQuest Designer
  • 在ClearQuest Designer中,点击Package -> Package Wizard
  • 在安装Package向导中,找到ClearCase 1.0和ClearCase Upgrade 1.0,如果这些Packages没有列出,则点击"More Packages",并将上述的两个Packages添加到列表中。
  • 选择ClearCase 1.0 Package并点击"下一步"
  • 选择一个将会应用ClearCase 1.0 Package的schema e.g. Defect Tracking,点击"下一步"
  • 选择数据纪录的类型并点击"完成"
  • 选择File -> Check In来保存schema的最新版本
  • 选择Database -> Upgrade Database把schema的最新版本升级到ClearQuest user database中

4.2.2 在ClearCase VOBs上安装触发器(Triggers)

CCCQ的集成应用到了针对cleartool checkin, checkout和uncheckout操作的触发器,触发器的安装与配制需要在Windows端配制,该Windows的Registry Server必须与UNIX上建VOBs的那台Server指向同一台Registry Server。具体配置过程如下所述:

4.2.2.1 同步UNIX与Windows上的ClearCase Regions

1) 在Windows上新建一个Region,名称与需要同步的UNIX上的Region名称相同,这时UNIX上的Region就在Registry Server上注册了。

2) 运行 -> cleartool -> mkregion -tag <UNIX region>

3) 开始 -> 程序 -> Rational Software ->

4) Rational ClearCase'Administration'Region Synchronizer


图 (02) 导入Unix服务器上的VOB

5) 选择需要同步的Windows Region和UNIX Region, 在Import Type一项上选择"VOB Tags"并且选中"Show full storage directory paths.

6) 在"Unix VOB tags not found in the Windows region"列表中选择需要引入的VOB,点击"Import",这时"Create VOB Tag"对话框会显示出来。在"Global Storage"一项中输入在UNIX服务器上的VOB的网络存储路径,并且在"Hostname"一项中输入在Region内能够解析的主机名。


图 (03) 创建Tag

4.2.2.2 将一个VOB安装上Trigger

当一个VOB被引入(Import)后,我们可以对其安装Trigger 在ClearCase中,点击开始 -> 程序 -> Rational Software'Rational ClearCase'Administration'Integrations'ClearQuest Integration Configuration. 这时出现如下图所示的对话框。


图 (04) 应用Trigger

在"ClearCase - ClearQuest Integration Configuration"对话框中,我们可以看到所有在UNIX服务器端建立好的VOBs,并且可以对其中任何一个VOB安装trigger。在这里,我们对VOB int4安装Checkout和Checkin的trigger。Trigger的配制文件在config.pl中有详细说明,关于trigger选择的详细内容可以参看上一章节。

提示:

  • 触发器使用config.pl配制文件来控制本地集成的配制参数。当选择V2触发器时,配置应用程序会将config.pl文件路径设为CQCC/config.pl,在这个路径中CQCC代表了本地的cc-home-dir/lib/perl5/CQCCTrigger/CQCC这个路径,用户可以根据需要将这个路径改变为一个UNC路径,因此所有的集成操作将调用一个中心配制文件config.pl。
  • 在安装触发器时,只有VOB的所有者才可以对自己创建的VOB安装触发器。如果一个用户e.g. Harry登陆Windows,他想对Andy在UNIX上创建的VOB安装触发器,这时会出现"无法得到触发器类型"等警告。如果Harry希望可以对VOB安装触发器,那么需要执行以下两步:
  • 在DOS模式下运行Runas /user:RATIONALCC\Andy cmd.exe命令,这个命令将以Andy的身份打开一个DOS窗口,并提示输入用户名和密码。
  • 在验证通过登陆后,另一个DOS窗口将会打开,在这个窗口中,运行"cqconfig"来以Andy的身份在VOB上安装触发器。

4.2.3 核心文件config.pl的配置

config.pl文件的配置在Base ClearCase与ClearQuest集成的操作中起到重要的作用。config.pl文件中包含了一系列变量及参数的设置,设置的描述,以及在哪里可以配制这些参数(是在config.pl文件本身中设置还是在系统环境变量中设置)。

config.pl文件在不同操作系统上的存储路径:
Windows:C:\Program Files\Rational\Clearcase\lib\perl5\CQCCTrigger\CQCC\config.pl
UNIX: /usr/atria/sun5/lib/perl/CQCCTrigger/CQCC/config.pl

下面就一些重要的参数配置进行详细的说明:

4.2.3.1 定义用户数据库

&SetConfigParm("CQCC_DATABASE_ENTITY_LIST","SAMPL: defect");
CQCC_DATABASE_ENTITY_LIST参数定义了一个或多个数据库和数据库所支持的数据纪录类型。当定义多个数据库时,参数的使用格式为:dbname1: entity1,entity2; dbname2: entity3,entity4。值得注意的是数据纪录类型必须为在schema中已定义好的内容。

4.2.3.2 定义DBsets

&SetConfigParm("CQCC_DATABASE_SET", "<db_set_name>");
在ClearQuest中,当建立有多个DBsets时,即有多个schema存储空间时,CQCC_DATABASE_SET参数用来指定一个当前可以使用的schema存储空间。

4.2.3.3 选择集成模式: 文本模式或图形模式

&SetConfigParm("CQCC_GUI_ENABLE", "OFF");
此参数是一个开启Perl/TK GUI图形界面的开关。如果设置为"ON"(默认情况下),那么图形界面会在需要的情况下显示,例如,在运行xclearcase时。如果设置为"Always",那么图形界面会在命令行操作的形式也显示。如果设置为"OFF",那么图形界面将永远不显示,因此只可以用命令行操作。

4.2.3.4 开启DEBUG模式

&SetConfigParm("CQCC_DEBUG", "1");

此参数用来控制在运行时模式下DEBUG报告的输出级别。0 - 代表没有输出;1 - 代表基本输出(针对高级别的操作);2 - 代表细节输出。

提示:其他参数设置的详细说明请参看config.pl文件。

4.2.4 执行Base CCCQ集成的最后检验

此时,根据以上所提供的信息,我们应能够完成cqcc检验,检验ClearCase与ClearQuest是否能够很有效的结合,并可以开始完成一些简单的操作。

在UNIX客户端运行:cqcc_launch -test

此时,cqcc_launch命令将会调用config.pl里的参数并试图连接ClearQuest,如果连接成功,exit_status会显示0,否则将显示1(如下图所示)


图 (05) 验证配置


5 在Windows的平台上的操作范例

可以说,Base ClearCase的基本操作,就是Check Out和Check in两个操作,下面就简单介绍一下这两个操作。

5.1 Check Out

1) 在ClearCase Explorer中,选中一个文件,进行Check Out操作。如果是配置完成后第一次进行操作,需要输入ClearQuest的用户名和密码。


图 (06) 登陆窗口

2) 登陆成功后,就会出现QSW(Query Association Window)窗口,显示满足条件的缺陷。选择缺陷,点击Association按钮,可以将其放到上侧窗口中,点击OK,即可完成关联。


图 (07) 关联窗口

3) 关联成功后,在ClearQuest中打开相应的缺陷,在ClearCase页中,可以查看到关联的文件。


图 (08) 在ClearQuest中查询关联的文件

4) 在ClearCase Explorer中右键点击被关联的文件,选择版本属性,查看被关联的缺陷。


图 (09) 在ClearCase中查询关联的问题

5.2 Check In

1) 在ClearCase Explorer中选中文件,进行Check Out操作,弹出QSW窗口。


图 (10) 关联窗口

2) 在ClearQuest中查看被关联的文件。


图 (11) 在ClearQuest中查询关联的文件

3) 在ClearCase中查看被关联的缺陷。


图 (12) 在ClearCase中查询关联的文件

posted @ 2006-08-09 17:04 eddy liao 阅读(408) | 评论 (0)编辑 收藏

1.在不同网络环境中ClearCase的管理
http://www-128.ibm.com/developerworks/cn/rational/r-hanss/

2.IBM Rational ClearCase-Samba 协同环境的设置和问题解决
http://www-128.ibm.com/developerworks/cn/rational/r-cc-samba/

3.ClearCase Interoperation实例详解
http://www-128.ibm.com/developerworks/cn/rational/06/r-shixl2/index.html

我也别贴了,到这里去找吧。
http://www-128.ibm.com/developerworks/cn/views/rational/articles.jsp

posted @ 2006-07-25 14:01 eddy liao 阅读(296) | 评论 (0)编辑 收藏

先把找到的参考资料发上来,还不知道有没有用,再整理吧。
http://www.microsoft.com/china/windowsserver2003/default.mspx

Windows Server 2003 部署通用结构分步指南

第一部分:将 Windows Server 2003 安装为域控制器
http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/directory/activedirectory/stepbystep/domcntrl.mspx

 

Win2K安装与服务器配置(下)
http://article.pchome.net/00/01/79/90/

Windows Server 2003中的Active Directory服务
http://www.microsoft.com/china/technet/community/columns/profwin/pw0503.mspx

轻松配置Windows2003自带MAIL服务器
http://server.chinabyte.com/91/2394591.shtml
手把手教您架设Windows2003共享服务器
http://server.chinabyte.com/185/2482185.shtml

posted @ 2006-07-25 12:36 eddy liao 阅读(9195) | 评论 (2)编辑 收藏

checkstyle 是一个帮助开发者按照某种习惯编写 java 代码的工具,他实现了代码检查的自动化,帮助人们从这种繁琐的工作中解放出来。

默认提供了对 sun 编程规范的支持,但是 checkstyle 是一个具有高可配置性的,你完全可以根据自己的要求来配置需要检查的内容。

有以下这些东西
\lib\checkstyle-3.1\contrib\checkstyle-noframes.xsl
\lib\checkstyle-3.1\checkstyle-all-3.1.jar
\lib\checkstyle-3.1\sun_checks.xml                    

在build.xml文件中添加
    <patternset id="java.files.pattern" includes="**/*.java"/>

    <target name="checkstyle" depends="prepare"           依赖prepare target
        description="Check code style for compliance with coding standards">
        <property name="checkstyle.data.dir"
            location="${build.dir}/docs/checkstyle"/>                 存放路径
        <property name="checkstyle.data.file"
            location="${checkstyle.data.dir}/checkstyle.xml"/>     xml文件
        <property name="checkstyle.report.file"
            location="${checkstyle.data.dir}/checkstyle.html"/>   html文件
        <property name="checkstyle.xsl.file"
            location="${checkstyle.dir}/contrib/checkstyle-noframes.xsl"/>   选用的样式表,checkstyle.dir为jar包的位置
        <mkdir dir="${checkstyle.data.dir}"/>
        <taskdef resource="checkstyletask.properties" classpath="${checkstyle.jar}"/>  引入jar文件
        <checkstyle config="${checkstyle.dir}/sun_checks.xml"                      选用sun的规范,可以修改为自己的最佳实践
            failOnViolation="false" failureProperty="checkstyle.failure">
            <fileset dir="src">                                                                   对src目录进行检查
                <patternset refid="java.files.pattern"/>
            </fileset>
            <fileset dir="test">                                                                  对test目录进行检查
                <patternset refid="java.files.pattern"/>
            </fileset>
            <!-- uncomment to print to console as well -->
            <!--formatter type="plain"/-->
            <formatter type="xml" toFile="${checkstyle.data.file}"/>         生成xml文件
        </checkstyle>
        <xslt in="${checkstyle.data.file}" out="${checkstyle.report.file}"
            style="${checkstyle.xsl.file}"/>                                        生成报告,其格式取决于checkstyle.xsl.file
    </target>

如图所示:图1列出了所有文件,图2列出了所以错误

checkstyle1.JPG


checkstyle2.JPG



下面解释了一些常见的输出结果,以供参考。  
序号            输出内容意义    
1  Type  is  missing  a  javadoc  commentClass    缺少类型说明    
2“{”  should  be  on  the  previous  line  “{”  应该位于前一行    
3Methos  is  missing  a  javadoc  comment方法前面缺少javadoc注释    
4Expected  @throws  tag  for  “Exception”在注释中希望有@throws的说明    
5“.”  Is  preceeded  with  whitespace  “.”  前面不能有空格    
6“.”  Is  followed  by  whitespace“.”  后面不能有空格    
7“=”  is  not  preceeded  with  whitespace“=”  前面缺少空格    
8“=”  is  not  followed  with  whitespace“=”  后面缺少空格    
9“}”  should  be  on  the  same  line“}”  应该与下条语句位于同一行    
10Unused  @param  tag  for  “unused”没有参数“unused”,不需注释    
11Variable  “CA”  missing  javadoc变量“CA”缺少javadoc注释    
12Line  longer  than  80characters行长度超过80    
13Line  contains  a  tab  character行含有”tab”  字符    
14Redundant  “Public”  modifier冗余的“public”  modifier    
15Final  modifier  out  of  order  with  the  JSL  suggestionFinal  modifier的顺序错误    
16Avoid  using  the  “.*”  form  of  importImport格式避免使用“.*”    
17Redundant  import  from  the  same  package从同一个包中Import内容    
18Unused  import-java.util.listImport进来的java.util.list没有被使用    
19Duplicate  import  to  line  13重复Import同一个内容    
20Import  from  illegal  package从非法包中  Import内容    
21“while”  construct  must  use  “{}”“while”  语句缺少“{}”    
22Variable  “sTest1”  must  be  private  and  have  accessor  method变量“sTest1”应该是private的,并且有调用它的方法    
23Variable  “ABC”  must  match  pattern  “^[a-z][a-zA-Z0-9]*$”变量“ABC”不符合命名规则“^[a-z][a-zA-Z0-9]*$”    
24“(”  is  followed  by  whitespace“(”  后面不能有空格  25“)”  is  proceeded  by  whitespace“)”  前面不能有空格
25 Line has trailing spaces  行的最后不能有空格

根据sun_checks.xml文件的内容,可以到http://checkstyle.sourceforge.net/checks.html这里查看具体的配置,实现你们的最佳实践

posted @ 2006-07-20 15:51 eddy liao 阅读(3033) | 评论 (0)编辑 收藏