posts - 33,  comments - 17,  trackbacks - 2
  2010年12月3日

为了减少软件版本发布带来的时间消耗,释放开发人员的重复劳动压力,最近项目中确定进行持续化集成测试构建。构建方案主要是采用Bamboo+Ant+SVN来进行。现在广泛流行的是开源持续集成工具Cruise Control,但Bamboo这个持续集成工具是商业软件,以前听都没听过,为了跟Jira无缝集成,因此决定使用它。但这个工具在国内真是太不流行了,网上一点中文资料都没有,而且英文资料(包括用户手册)写得真不怎么样,就算你看完了也不一定能搞清楚怎么配置。

靠人不如靠自己。经过一段时间的研究和尝试,终于把整套构建方案完成了。在这里,分享给大家,以作参考。

 

一、环境准备(请一定要按照顺序来安装,可以避免一些配置的麻烦)

1.         安装JDK1.6,配置环境变量。注意最好安装在某个盘的根目录,一定不要安装在Program Files下面,否则其他开源软件很有可能不认这个环境变量的;环境变量就是配J***A_HOMEPathClASSPATH,不要说这个也不会配啊!

2.         安装Ant1.8.1,配置环境变量。注意点同上,环境变量就是配ANT_HOMEPath;另外也可以使用出名的Maven构建工具,各有所爱;

3.         安装SVN软件。我用的CollabNetSubversion-server-1.6.12-1.win32.exe,这个版本的好处是集成了Apache Httpd服务器和SVN服务,只要安装完成后SVN环境变量会自动配置,服务自动运行,不用手工配置了;但注意:安装目录也不能在Program Files下面,否则环境变量也是认不了的。切记!

4.         安装TortoiseSVN1.6.10客户端。出名的SVN客户端,一定要用!只要安装完成后直接可以使用了,不用配置环境变量;

5.         安装Bamboo软件。我用的版本是atlassian-bamboo-2.6.1-standalone.exe,注意这是商业软件,要给钱的。不过可以申请一个30天免费的试用License。安装完成后,直接使用浏览器打开地址:http://localhost:8085/,即可看到一个输入License的界面。在这个界面里面会自动显示根据你的机器产生类似这样的编码:XXXX-MMMM-SSSS-YYYY,复制这个编码。然后到Bamboo的官方站网申请Licensehttps://my.atlassian.com/products/index/,注册后登陆,输入机器码进行申请(如下图一),最后复制License到刚才的本地页面中录入就完成注册。另外,接下来就是在本地Bamboo应用中注册一个用户账号,用来进行登陆配置使用。一定要记住账号密码啊,否则就找不回来需要重新Bamboo了。设置完成后,Bamboo会要求你设置bamboo_home目录,此目录中的xml-data目录是日后SVN Checkout 的工作目录。

6.         安装Tomca6.0.28应用服务器。直接下载一个绿色版本的Tomcat6.0.28,解压就可以直接使用了,不需要配置环境变量。

7.         安装ServU FTP服务器。创建账号密码,指定目录到Tomcatwebapps

 

(图一)

 

二、创建SVN项目仓库

1.         在本地硬盘创建SVN仓库目录,如G:\svn_repository\mypersiondb。点击选中目录mypersiondb,右键菜单选择“TortoiseSVN-create repository here”,即完成项目仓库的创建;

2.         启动SVN仓库服务。打开运行DOS窗口,输入命令:svnserve –d –r G:\svn_repository\mypersiondb,即可启动SVN项目仓库服务;

3.         通过TortoiseSVN把个人项目导入到SVN项目仓库中。假设项目名称为:TestApp,主线是存放于trunk中。

 

三、创建ANT构建脚本

1.         第三方类包:jakarta-oro-2.0.8.jarcommons-net-2.0.jar,主要是用于FTP上传文件;注意:这两个Jar文件一定要存放于%ANT_HOME%/lib中才能在Ant中调用ftp的命令。

2.         创建build.xml文件;如下代码演示。

3.         build.xml文件的注意要点:一是设置Bamboo的相关属性,如Home位置、BambooProject-PlanKey名称、SVN Checkout文件的工作空间路径等;二是设置FTP的相关参数,如UsernamePasswordServernameIP)等;三是设置ANT编译源文件的JDK版本,如“source=1.6”表示调用JDK1.6进行编译,如果开发Java代码的JDK代码与编译的JDK不一致会导致问题;四是设置编码类型:<compilerarg line="-encoding UTF-8 "/>,与编码时一致,否则出错。

四、FTP的配置

1.         注意FTP服务器配置账号时,应该指定到Tomcat6.0的安装目录下面的webapps中;

2.         Ant构建脚本完成打包时,会把“TestApp.war”包使用Ftp命令上传到webapps目录中,Tomcat检查后会自动展开到ROOT目录中,实现自动部署;

 

五、BambooPlan配置

posted @ 2010-12-03 23:33 油纸伞 阅读(303) 评论(0) 编辑

1           管理,对项目、权限等进行设置

点击左上角的 ,进入管理JIRA系统页面

1.1         Projects->Project Categories,此处可用来建部门,让项目按部门分类,如下图所示:

 

1.2         新增用户(若用户列表中已有您需要的用户,此步骤可省略)

Users & Groups->User Browser->Add User,在此可以添加新用户。如下图所示。

 

1.3         新增用户组

Users & Groups->Group Browser->Add Group,分别对此项目的不同用户建立不同的组,方便稍后的权限设置。如可以按普通开发、测试等分组,此分组根据项目需要而定。

 

用户组创建后,接着添加此组成员,如下图所示

找到需要添加的用户后,点击Edit Groups对该用户所在的组进行编辑,找到刚才添加的组,选中后点击 即可。

 

1.4         Global Settings->CVS Modules,若配置管理工具为CVS,可在此设置其与CVS结合,具体设置如下:

 

1.5         问题安全设置:Schemes->Issue Security Schemes->Add Issue Security Scheme,输入具体的安全设置名称(name)及详细描述(description)即可,其中详细描述为可选项。

新增后可点击Security Levels,设置不同的安全级别。如图所示:

完成上述设置后,还可点击Edit设置默认的安全级别。

 

1.6         权限设置:Schemes->Permission Schemes(最重要的一步)

点击Add Permission Scheme,新增一权限设置,或直接点击已有的项目权限进行Copy但记得要修改名称。新增后,点击旁边的Permissions进行编辑,具体设置如下:

 

1.7         建新项目

Projects->Projects->Add Project如下图所示:

设置成功后,会在Administrator页面中的“Default Assignee”列会显示黑色的“Project Lead”,若显示的是红色的“Project Lead”,那一定是权限或某个地方未设置好,需重新检查、修改各项设置,直到它变成黑色为止。

 

1.8         问题类型设置:Issue Settings->Issue Types,可在此设置问题的类型,可分为缺陷、需求、疑问等类型。在登记问题时可对问题进行分类,方便日后统计

 

1.9         问题优先级设置:Issue Settings->Priorities,设置问题的处理优先级,便于程序员优先处理优先级高的问题。

 

1.10     问题反馈类型设置:Issue Settings->Resolutions,用于程序员对处理的问题进行归类。

 

1.11     问题状态设置:Issue Settings->Statuses,设置问题所处的解决状态。

 

1.12     添加项目各模块:Projects-> Projects->Components。如下所示,输入相应的模块名称及选择相应的负责人。

 

1.13     添加项目版本信息:Projects-> Projects->Versions

若某一版本已发布,可进入Manage,点击Release释放该版本,表示此版本已结束或告一段落,此时显示的版本日期为黑色字体,否则为红色字体,如上图中的“2.1版”。

 

到此,关于项目方面的创建也就完成了。

 

2           Bug跟踪流程

2.1         创建问题

点击系统中的 ,选择对应的项目,问题类型按实际情况选,可选项为bug、需求、任务、优化等。

  

        下面就创建问题,填写问题的详细情况进行简单描述

        :输入问题的简要休息,必填

优先级:从上到下排序,最上面的选项表示最紧急,默认是中等,表示紧急度适中。优先级的填写便于程序员安排处理问题的先后顺序。

:填写修改完问题的预计日期。

模块:选中问题发生的相应模块,便于问题的查找与定位。

        影响版本:选择问题发生时对应的版本号。

:若知道负责解决问题的人员,可在下拉框中选择,把问题直接分配给他。默认选项为“自动”,它会自动分配给当前的项目经理,再由项目经理分配给相应的程序员。

        :默认为登录用户,一般不做更改。

        :描述问题发生的软件或相关硬件环境。

        :对问题进行详细说明。

        :估算问题解决的时间期限。

    注意:JIRA中的“描述”和“注释”,不可使用中文的单引号和双引号,负责保存后会出现乱码,只能用英文的单、双引号。

2.2         分配bug

项目经理做为整个开发团队对外的唯一接口,所有的bug都会首先汇集到他头上,为了避免自己被累死,他必须将bug分配到各个组员手上。

项目经理进入某个问题的页面之后,点击左侧列表【操作】节中的 ,可以将问题分配给具体的开发人员。

2.3         bug的解决

程序员收到新的bug之后,开始检查原因,修正相应的问题。并点击问题页面左侧的"Resolve Issue"

    并根据实际情况,表示这个bug"已修正""被拒绝"还是"无法重现"等?然后分配给提问人,也就是选择列表中“自动”下的那个人。

2.4         bug的验证

    如果问题已经得到解决,则点击问题页面左侧的Close Issue,将任务分配给"自动",也就是bug会重新回到自己的名下,至此,一个bug走到了生命的尽头。

    如果问题并没有得到解决,或者问题被拒绝了,但是你不满意开发人员的答复,你坚持这个bug必须解决,则再次打开这个bug。点击问题页面左侧的Reopen Issue,将问题分配给该项目的项目经理,bug再次被激活起来。

posted @ 2010-12-03 22:59 油纸伞 阅读(119) 评论(0) 编辑

       JIRA 4的安装方法还是和原来的一样,没有什么特别,唯一的不同就是要jira-application.properties中配置一个jira.home,具体的安装过程可以去网上Google一下,应该没有太多问题。

        可正是这个jira.home,却让我很是火了一把。

        昨天还是好好的,结果今天一去公司,JIRA就起不来的,总是报jira.home被锁。我Google了好久,都没有结果,好不容易在官方的论坛上看到http://jira.atlassian.com/browse/JRA-17600和http://jira.atlassian.com/browse/JRA-17792都看到了,这是一个bug,看看状态,已经解决了,我欣喜了一番,照着做了,没用?!

    发现了官方教程有教怎么解锁jira.home的教程,马上打开,开始照着做,

具体的步骤贴出来供大家参考:

To unlock your JIRA home directory , follow the instructions below:

  1. Verify that no running JIRA instances are configured to use the specified JIRA home. If there are running JIRA instances that are configured to use the specified JIRA home, shut them down and change the JIRA home directory to a different location.
  2. Remove the file .jira-home.lock . This file is located in your JIRA home directory .
  3. Restart JIRA.

可教程里面让删除一个名为“.jira-home.lock” 的文件,可居然搜索不出来

        最后是在网上都了一个JIRA开发人员的blog,教了一招,还真好用,不过并没有解决问题,只是避开了这个问题,具体方法是:在setenv.sh中JAVA_OPTS里加入“-Djira.dev.mode=true”,鉴于作者希望不要广泛散播,还是不把作者的blog贴在这里,如果能找到我这篇blog的人也尊重作者的意思。^_^

posted @ 2010-12-03 22:20 油纸伞 阅读(148) 评论(0) 编辑

一、安装

1.Linux & MySql & JDK安装步骤省略,我使用的是Debian5 + MySql5 + JDK6

2.下载JIRA4.2,下载地址:http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa

注意:选择4.2 standalone版本

3.将下载得到的atlassian-jira-enterprise-4.2-standalone.tar.gz文件解压缩到/usr/local/jira目录下面

4.在MySql中专将JIRA数据库

create database jiradb character set  utf8;

grant all on jiradb.* to `jira`@`localhost` identified by 'jira'

5. 修改JIRA配

5.1创建jira.home文件夹

mkdir -p /usr/local/jira_home

5.2修改/usr/local/jira/atlassian-jira/WEB-INF/classes jira-application.properties 文件 
找到jira.home = 
修改为jira.home =/usr/local/jira_home 绝对路径

注:jira.home文件夹不可以设置为jira根目录及其子目录,关于这个目录做什么用,我也不清楚,估计是jira程序放临时文件用的吧。

5.3修改/usr/local/jira/conf/server.xml文件

修改成如下几项

username= "jira"   
password="jira"   
driverClassName="com.mysql.jdbc.Driver"   
url="jdbc:mysql://localhost/jiradb? autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"

删除以下两行

minEvictableIdleTimeMillis= "4000"   
timeBetweenEvictionRunsMillis="5000"

5.4修改/usr/local/jira/atlassian-jira/WEB_INF/classes/entityengine.xml文件

将其中的hsql改成mysql 数据库类型

<datasource name= "defaultDS"  field-type-name= "hsql"   
改为:  
<datasource name="defaultDS"  field-type-name= "mysql"   
删除    schema-name="PUBLIC"

二、破解

1. 下载破解补丁(jira_crack.zip)

下载地址:http://download.csdn.net/source/2812878

2.用破解补丁中的JiraLicenseStoreImpl.class文件覆盖/usr/local/jira/atlassian-jira/WEB_INF/classes/com/atlassian/jira/license/JiraLicenseStoreImpl.class文件

3. 用破解补丁中的Version2LicenseDecoder.class文件覆盖/usr/local/jira/atlassian-jira/WEB_INF/lib/atlassian-extras-2.2.2.jar包中的atlassian-extras-2.2.2.jar\com\atlassian\extras\decoder\v2\Version2LicenseDecoder.class文件

注:jar包可以用WinRAR打开,并可以采用拖拽的方式覆盖文件

4.运行JIRA服务

/usr/local/jira/bin/startup.sh

5.WEB 配置 JIRA

官方文档 http://www.atlassian.com/software/jira/docs/v3.13/setup.html 
视频演示 : http://www.atlassian.com/software/jira/videos/jira4-overview.jsp

在注册码输入框处输入以下内容:

#Sun Oct 25 00:50:34 CDT 2009 
Description=JIRA\: COMMERCIAL 
CreationDate=2009-10-25 
ContactName=ct@ct.ct
jira.LicenseEdition=ENTERPRISE 
ContactEMail=ct@ct.ct
Evaluation=false 
jira.LicenseTypeName=COMMERCIAL 
jira.active=true 
licenseVersion=2 
MaintenanceExpiryDate=2010-10-24 
Organisation=haha 
jira.NumberOfUsers=-1 
ServerID=此处替换成输入框上方的ID值
LicenseID=LID 
LicenseExpiryDate=2010-10-24 
PurchaseDate=2009-10-25

配置成功....

posted @ 2010-12-03 22:18 油纸伞 阅读(341) 评论(0) 编辑

jira 4.2 的详细安装(含破解

环境变量:JAVA_HOME=C:\jdk1.6.0_10(注意jdk版本>=此版本)

第一步:下载jira:

http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa

安装

第二步:下载Oracle数据库(省略),创建数据库,用户名,密码:(SID dss,默认用户sinoep,密码:sinoep)

第三步:下载oracle jdbc驱动,复制到 D:\Program Files\Atlassian\JIRA 4.2\lib 目录中;

第四步:下载附件jira_crack.rar,解压出来为:atlassian-jira 文件夹,然后覆盖 D:\Program Files\Atlassian\atlassian-jira(此项用于破解)

第五步:修改文件D:\Program Files\Atlassian \conf\server.xml中连接数据库部分,为如下:

<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"

                                                 username="sa"

                                                 password="sa"

                                                 driverClassName="oracle.jdbc.driver.OracleDriver"

                                                 url="jdbc:oracle:thin:@192.168.90.169:1521:dss"

                                                 connectionProperties="SetBigStringTryClob=true"

                                                 maxActive="20" />

第六步:目录 E:\jira\atlassian-jira\WEB-INF\classes\entityengine.xml文件中的 <datasource name="defaultDS" field-type-name="hsql"........</datasource> 用以下代码替换:

即删除schema-name=”PUBLIC”,修改field-type-name="oracle"

<datasource name="defaultDS" field-type-name="oracle"  

       helper-class="org.ofbiz.core.entity.GenericHelperDAO"  

       check-on-start="true"

……

      name="JiraDS"/> -->   

     </datasource>  

<datasource name="defaultDS" field-type-name="mysql"

      helper-class="org.ofbiz.core.entity.GenericHelperDAO"

      check-on-start="true"

      use-foreign-keys="false"

      use-foreign-key-indices="false"

      check-fks-on-start="false"

      check-fk-indices-on-start="false"

      add-missing-on-start="true"

      check-indices-on-start="true">

        <jndi-jdbc jndi-server-name="default" jndi-name="java:comp/env/jdbc/JiraDS"/>

<!-- Orion format: <jndi-jdbc jndi-server-name="default" jndi-name="jdbc/JiraDS"/> -->

<!-- JBoss format: <jndi-jdbc jndi-server-name="default" jndi-name="java:/JiraDS"/> -->

<!-- Weblogic format: <jndi-jdbc jndi-server-name="default" jndi-name="JiraDS"/> -->

    </datasource>

第七步:

启动 E:\jira\atlassian-jira\bin\startup.bat, 登录:http://localhost:8080/ 在页面下部有输入授权码的地方:复制以下代码:特别注意,复制出来每行前边如果有‘#’,要去掉,每行结束有看不见的空格,要去掉,否则 非法的授权码。

  1. Description=JIRA\: COMMERCIAL
  2. CreationDate=2010-11-04
  3. ContactName=xxx@126.com
  4. jira.LicenseEdition=ENTERPRISE
  5. ContactEMail=xxx@126.com
  6. Evaluation=false
  7. jira.LicenseTypeName=COMMERCIAL
  8. jira.active=true
  9. licenseVersion=2
  10. MaintenanceExpiryDate=2011-10-24
  11. Organisation=haha
  12. jira.NumberOfUsers=-1
  13. ServerID=BL7P-KJJY-06XC-R277
  14. LicenseID=LID
  15. LicenseExpiryDate=2011-10-24
  16. PurchaseDate=2010-11-04

Description=JIRA\: COMMERCIAL

CreationDate=2009-10-25

ContactName=haha@haha.haha

jira.LicenseEdition=ENTERPRISE

ContactEMail=haha@haha.haha

Evaluation=false

jira.LicenseTypeName=COMMERCIAL

jira.active=true

licenseVersion=2

MaintenanceExpiryDate=2010-10-24

Organisation=haha

jira.NumberOfUsers=-1

ServerID=B6FW-B4KW-J1A3-4DQB

LicenseID=LID

LicenseExpiryDate=2010-10-24

PurchaseDate=2009-10-25

点击下一步,到步骤二

页面如下:


点击:下一步,页面如下:

完成,可以登录了。

注意:

可能由于版本不同可能会有设置不同,有些版本需要配置jira.home,以上版本安装时候,默认配置了路径,如需配置,则应配置如下:

jira.home的设置方法:

修改\atlassian-jira\WEB-INF\classes\jira-application.properties文件;

将参数jira.home = E:/jirahome

posted @ 2010-12-03 22:17 油纸伞 阅读(400) 评论(0) 编辑