1 JIRA 简介简介
1.1 概要介绍概要介绍
JIRA 的生产者把JIRA 定义为Professional Issue Tracker ,即它是一个专业的问题跟踪管理的软件。这里的”问题”对应的英文单词是Issue ,所以含义比较广,包括Bug,Task,Enhancement,Improvement 等等跟软件开发相关的名词。跟踪管理即对问题的整个生命周期进行记录和管理。一个问题从创建到解决到关闭涉及到很多相关信息,个生命周期进行记录和管理。一个问题从创建到解决到关闭涉及到很多相关信息,包括是什包括是什么问题,谁发现的问题,谁处理了这个问题,如何处理的,相应的代码有什么改变等等,JIRA 可以方便的记录这些信息可以方便的记录这些信息,并且在问题的不同状态呈现在相应的责任人面前,并且在问题的不同状态呈现在相应的责任人面前,并且在问题的不同状态呈现在相应的责任人面前。相似的软件有。相似的软件有Bugzilla,Trac,Mantis,Clear Quest, Streber, 等。等。
进行问题跟踪管理的好处是:进行问题跟踪管理的好处是:
1. 让系统来记住Task ,Bug 等等信息,而不仅仅靠项目经理和程序员的脑袋来记忆。人脑记忆的东西往往是不准确的。记忆的东西往往是不准确的。
2. 问题跟踪管理可以定制流程,可以有效提高工作效率问题跟踪管理可以定制流程,可以有效提高工作效率
3. 用专业的系统来进行问题跟踪管理能带来更多的好处,详细见下面JIRA 的优点的优点
1.2 JIRA 的优点的优点
JIRA 有很多专业特性,不愧为介绍中说的Professional 这个词。这个词。
1. 针对问题其默认定义了丰富的字段来记录问题的各种信息,包括Issue Type, Issue summary, Issue Description, priority, assignee, reporter, resolutions 等等等等
2. 强大的自定义字段功能,自定义字段自带有22中类型可以选择,而且还可以通过JIRA Extension 来支持更多类型。22种类型如下图所示:种类型如下图所示:
3. 针对每个字段都能进行屏幕,项目,问题类型等配置,可以方便的控制字段应该出现在哪里,而不应该出现哪里。里,而不应该出现哪里。
4. 默认定义了工作流的一些状态: new, open, defer, pending, resolved, reopened, closed 。 默认定义了一个简易的工作流, open-in progress-resolved-closed
5. 强大的自定义工作流功能,针对不同的流程节点可以定义不同的权限、字段、后续可供选择的处理方式。选择的处理方式。
6. 丰富的权限管理配置,可以针对项目、用户、用户组、项目角、操作定义各种组合定义
7. 支持附件,同时针对图片附件有特别支持,可以图片附件直接在网页中显示,如下图
8. 可方便地定制查询(Filter),不同的查询可以快速到你关注的问题。查询条件可以对绝大部分字段设定条件。大部分字段设定条件。
9. 用户首页可以定制,并且可以定制的查询放入首页,这样可以方便查看关注的内容。首页被定义为一个Portal ,可供加入的Portlet 有很多,如下图所示有很多,如下图所示
10. 支持邮件通知,邮件通知可以同工作流中和工作流之外的事件关联支持邮件通知,邮件通知可以同工作流中和工作流之外的事件关联
11. 支持Time Tracking 功能,这个功能用于项目管理中的任务管理是很方便的功能,这个功能用于项目管理中的任务管理是很方便的
12. 支持CVS 、SVN 代码库的整合,同时支持Fisheye ,这样可以让问题和代码关联,这样可以让问题和代码关联
13. 自带备份机制,不用担心数据丢失。况且JIRA 运行非常稳定,使用2年以来从未发生系统性故障系统性故障
14. 导入导出功能很完善,可以导出为XML 文件,方便将数据从不同数据库之间迁移。文件,方便将数据从不同数据库之间迁移。
15. 系统性能非常不错,在一台普通PC 上,只分配了256M 内存,整个系统有1000多个Issue ,92个用户(同时在线使用应该有20个用户),同时还将JIRA 需要的数据库安装在一起可以很流畅的运行。同时这台PC 还运行了CVS,VSS 等等服务。等等服务。
16. 支持多种数据库,mysql, ms sqlserver, oracle 等等,自带有内存数据库hsql db 已经可以让JIRA 运转起来运转起来。。 配合MySQL 已经足够应付40个人规模的项目个人规模的项目。。JIRA 的数据库很简练,附件是作为文件形式存放的。练,附件是作为文件形式存放的。
17. 支持Plugin 功能,如果有什么没有实现的功能,或许通过plugin 可以实现,JIRA 的网站上有很多plugin 来下载来下载
18. JIRA 针对开源项目是提供免费license 的,所以其用户很庞大,相应的你得到支持也是很多的,包括官方详尽的文档、Wiki ,用户论坛等等,用户论坛等等
19. 更多特性有待你来发掘更多特性有待你来发掘
1.3 JIRA 的缺点的缺点
1. JIRA 是个商业软件,而Bugzilla 、Mantis 是开源免费的是开源免费的
2. 对clear case 没有官方支持,有一个plugin ,但是状态时unsupported
3. 专业性也带来了配置的复杂,建立一套完善的custom fields, workflow, permission scheme 并不是一件容易的事情并不是一件容易的事情
2 JIRA 的安装的安装
JIRA 是一个Java Web Application, 自带的web server 是Tomcat ,所以熟悉J2EE 开发的人来安装JIRA 应该是轻车熟路的。JIRA 3.12版本之后已经提供windows installer 形式的安装包,安装起来也变得很简单。以下介绍以windows 安装包的形式来介绍安装包的形式来介绍
2.1 安装步骤安装步骤
JIRA 提供stanalone, war 包,installer 等的安装方式,以下安装以最简单的installer 来介绍来介绍  1. 下载Windows installer, Atlassian 的网站提供下载。安装包有56M ,这个包已经包括了JRE 和Tomcat ,所以可见JIRA 的安装文件并不肥大。的安装文件并不肥大。
2. 双击EXE 文件开始安装,安装路径可以任意选择。文件开始安装,安装路径可以任意选择。
3. 安装向导结束后双击%JIRA_HOME%/bin/startup.bat 可以启动JIRA ,通过localhost:8080 访问JIRA 应用,如果成功打开了页面则表明安装成功应用,如果成功打开了页面则表明安装成功
2.2 安装配置安装配置  1. 安装数据库,自带的hsqldb 是不赞成使用的,我们以mysql 为例进行配置。首先安装mysql ,安装过程见相关文档,一般不需要有特殊选项,安装过程见相关文档,一般不需要有特殊选项
2. 建立数据库,用root 用户登录mysql ,创建一个名为jira 的数据库(数据库名可以任意),字符集用如下图的选项:字符集用如下图的选项:
3. 建立数据库用户,如下图所示,如果数据库和JIRA 在同一台机器,主机那栏填localhost
并将jira 数据库的所有权限赋予给jira 用户(JIRA 初始化数据库时需要比较大的权限)
4. 下载mysql jdbc driver 的jar 包,并放入%JIRA_HOME%/common/lib 目录。
Mysql 的jdbc 驱动有很多版本,请下载适合你的mysql server 的最新驱动,不然会产生一些意料不到的问题。问题。
5. 将%JIRA_HOME%/atlassian-jira\WEB-INF\l 中的datasource name="defaultDS" field-type-name="hsqldb" 改为mysql
6. 将%JIRA_HOME%/l 中的jdbc/JiraDS 修改为如下形式修改为如下形式
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
username="jira"              password="jira"
driverClassName="sql.jdbc.Driver"
url="jdbc:mysql://localhost/jira?autoReconnect=true&useUnicode=true& ;characterEncoding=UTF8"
maxActive="20" />
7. 将JIRA 安装为NT 服务。在CMD 窗口运行bin/service.bat install 即可安装,service.bat remove 进行卸载。安装好打开服务如下图所示,点击“启动”按钮即可启动JIRA
8. 配置语言及通用选项。JIRA 第一次启动会提示你选择语言项,最好选择英语,因为中文不很完善,有些链接不会显示会导致功能缺陷。Index, attachment, backup 等目录可以如下图所示来建立如下图所示来建立
到此JIRA 就已经全部安装好了。就已经全部安装好了。
3 Quick Start
3.1 创建Project
JIRA 默认的管理员是admin ,密码也是admin ,使用这个用户登录后来创建Project 。没有project 的JIRA 菜单很少,如下图所示:菜单很少,如下图所示:
1. 点击菜单中的ADMINISTRATION 进入管理页面,点击Projects-Add Project 来添加Project
2. 如下图填写必填项,key 这个选项填完之后就不能修改了,所以想清楚填什么值最好,并且建议填3个字母以内的缩写。Project lead 是必填的,但是这个时候只有admin 一个用户,只能填admin 了,增加用户后可以修改project lead 为别人。后面的选项都用默认。最后点击Add 则完成了Project 的创建的创建
Project 创建完成后,我们可以发现JIRA 的菜单栏多了三个菜单:BROWSE PROJECT, FIND ISSUES, CREATE NEW ISSUE ,功能分别是查看项目汇总统计信息,查询,创建新问题,详细使用在后面描述。问题,详细使用在后面描述。
3.2 查看用户组查看用户组
点击Group Browser 可以看到JIRA 默认提供的三个Group,在Quick Start 中我们用这个三个用户组就可以了。管理Group 也是通过这个界面来进行也是通过这个界面来进行
3.3 创建用户创建用户
1. 如下图通过User Browser-Add User 来添加User
2. 下图中的Username 是用户的登录名,将不能修改。Full Name 是显示名,可以进行修改
3. 点Create 后创建成功,如下图后创建成功,如下图
点击Edit Groups 可以编辑用户所在的组,用户默认的组是jira-users 。
4. 选择jira-developers 然后点击如下图中的Join>> ,arthur 将被加入jira-developers 这
个group
5. 改变TST Project 的project lead 。(Admin 用户是超级管理员,最好不要在任何项目中担当角)
从ADMINISTRATION-Project 进入,如下图点击Edit
在Project Lead 栏输入arthur (jira 3.12.3版本系统会通过AJAX 快速查询到用户进行选择)
一个项目不能只有一个project lead ,我们按照上述方法创建两个jira-developers 的用户:Carol, Ben 创建两个jira-users 用户:Chris, Mike 。 Jira-developers 组是开发人员,职责是解决问题,jira-users 组是测试组,职责是发现问题并创建问题测试问题组是测试组,职责是发现问题并创建问题测试问题
3.4 创建Issue
用arthur 这个用户登录JIRA ,点击CREATE NEW ISSUE 进行问题创建。如下图,这个界面中有两个下拉框可以选择,Project 中因为只有一个项目,所以没得选择,Issue Type 有四个选项四个选项
Bug: 软件中的缺陷软件中的缺陷
New Feature: 需求之外增加的新功能需求之外增加的新功能
Task : 计划中的任务计划中的任务
Improvement :针对已经实现的功能的改进:针对已经实现的功能的改进
我们选择Task,创建一个任务:Project Lead 分配一个任务给Carol,内容是让Carol 来做8月14日的早餐。如下填写信息:日的早餐。如下填写信息:
Summary 中填写概要信息,详细信息填写在Description 中,比如错误日志、详细需求等等中,比如错误日志、详细需求等等  Due Date 是指何时需要完成是指何时需要完成
Assignee 填写指派人填写指派人
Components 和Version 的信息目前都是Unknown ,因为针对Test Project 我们没有配置这两个信息这两个信息
Environment 一般填写Bug 发生的环境,Bug 往往是因为其环境有特殊性而导致往往是因为其环境有特殊性而导致  Priority 默认有5个选项:个选项:
从图标可以看出其代表不同的优先级从图标可以看出其代表不同的优先级
点击Create 进行创建,之后可以看到如下图的结果:进行创建,之后可以看到如下图的结果:
JIRA 系统自动分配了一个Issue Key :TST-1,这个Key 是唯一标识issue 的编号,其他信息如图所示信息如图所示
3.5 处理Issue
Carol 登录JIRA 后在她的首页可以看到如下信息:后在她的首页可以看到如下信息:
可以看到右边的Assigned To Me 列表中有一条记录,这表示是需要处理的Issue ,点击TST-1的链接进入如下界面:的链接进入如下界面:
Available Workflow Actions 中的链接是不同处理Issue 的步骤,在开始做早餐之前,Carol
应该点击Start Progress ,之后TST-1的status 变为变为
In progress , 半小时后Carol 做完了
早餐,她就应该点击Resolve Issue,之后进入如下界面:之后进入如下界面:
Resolution 有如下选项:有如下选项:
resolved是什么状态Fixed :已经解决:已经解决
Cannot Reproduce :问题无法重现:问题无法重现
Won’t Fix :无法解决:无法解决
Incomplete :未完成,未完成还还能叫做Resolved?
Duplicate :重复问题,选择这个的时候最好在Comment 中写上重复的Issue KEY  Assignee 填确认这个问题是否解决的人,一般填问题创建者填确认这个问题是否解决的人,一般填问题创建者
点击Resolve 之后Issue 状态变成了Resolved
用arthur 登陆JIRA ,在Quick Search 中输入TST-1可以快速到TST-1这个Issue ,经过严格测试之后可以确认问题已经解决,则可以选择Close Issue 。
在Available Workflow Actions 点击Close Issue ,在下一个界面填写Comment ,之后Issue status 变成了Closed ,到此Issue 处理结束。处理结束。
当然如果这个Issue 经过测试再次发生问题,可以选择Reopen Issue, Reopened 的Issue 后续处理同open 状态的issue 是一致的。是一致的。
4 定制你的JIRA(For Users)
4.1 JIRA 操作界面介绍操作界面介绍
1. 下图是首页界面介绍(点击菜单栏中的HOME 进入)
注:QUICK SEARCH 是一个非常有用的框框:是一个非常有用的框框:
1) 输入issue Key 可以迅速打开这个issue ,比如输入PR-10,则可以转入到PR-10的明细页面页面
2) 当你已经工作在某个Project 时,你只要在快速搜索框中输入issue Key 的序号,即可完成1)中的功能,即输入10然后按回车既有PR-10的效果的效果
3) 输入非issue Key 或非数字的字符等同于Filter 中在Text Search 中输入了特定的字符进行搜索行搜索
2. BROWSE PROJECT 界面界面
3. FIND ISSUES 界面界面
4. Issue Detail 界面界面
通过点击issue Key 进入,或者其他链接进入进入,或者其他链接进入
5. ADMINISTRATION 界面介绍界面介绍
最多菜单链接的一个界面,在后面章节中会有针对大多配置对应链接的说明。
4.2 修改个人信息修改个人信息
JIRA 中的个人信息包括:密码、姓名、Email 、Filter 、preference 、Dashboard 、Column Navigator 等。等。
通过JIRA 右上部的Profile 链接进入设置,进入后的界面如下图所示:链接进入设置,进入后的界面如下图所示: