高端旅游品牌:JIRA简介

来源:百度文库 编辑:九乡新闻网 时间:2024/05/17 01:24:08
  1. 1 JIRA简介   
  2. 1.1 概要介绍   
  3.     
  4. JIRA的生产者把JIRA定义为Professional Issue Tracker,即它是一个专业的问题跟踪管理的软件。这里的”问题”对应的英文单词是Issue,所以含义比较广,包括 Bug,Task,Enhancement,Improvement等等跟软件开发相关的名词。跟踪管理即对问题的整个生命周期进行记录和管理。一个问题从创建到解决到关闭涉及到很多相关信息,包括是什么问题,谁发现的问题,谁处理了这个问题,如何处理的,相应的代码有什么改变等等,JIRA可以方便的记录这些信息,并且在问题的不同状态呈现在相应的责任人面前。相似的软件有Bugzilla,Trac,Mantis,Clear Quest, Streber, 等。   
  5. 进行问题跟踪管理的好处是:   
  6. 1. 让系统来记住Task,Bug等等信息,而不仅仅靠项目经理和程序员的脑袋来记忆。人脑记忆的东西往往是不准确的。   
  7. 2. 问题跟踪管理可以定制流程,可以有效提高工作效率   
  8. 3. 用专业的系统来进行问题跟踪管理能带来更多的好处,详细见下面JIRA的优点   
  9. 1.2 JIRA的优点   
  10. JIRA有很多专业特性,不愧为介绍中说的Professional这个词。   
  11. 1. 针对问题其默认定义了丰富的字段来记录问题的各种信息,包括Issue Type, Issue summary, Issue Description, priority, assignee, reporter, resolutions等等   
  12. 2. 强大的自定义字段功能,自定义字段自带有22中类型可以选择,而且还可以通过JIRA Extension来支持更多类型。22种类型如下图所示:   
  13.   
  14. 3. 针对每个字段都能进行屏幕,项目,问题类型等配置,可以方便的控制字段应该出现在哪里,而不应该出现哪里。   
  15. 4. 默认定义了工作流的一些状态: new, open, defer, pending, resolved, reopened, closed。 默认定义了一个简易的工作流, open-in progress-resolved-closed   
  16. 5. 强大的自定义工作流功能,针对不同的流程节点可以定义不同的权限、字段、后续可供选择的处理方式。   
  17. 6. 丰富的权限管理配置,可以针对项目、用户、用户组、项目角色、操作定义各种组合定义   
  18. 7. 支持附件,同时针对图片附件有特别支持,可以图片附件直接在网页中显示,如下图   
  19.   
  20. 8. 可方便地定制查询(Filter),不同的查询可以快速找到你关注的问题。查询条件可以对绝大部分字段设定条件。   
  21. 9. 用户首页可以定制,并且可以定制的查询放入首页,这样可以方便查看关注的内容。首页被定义为一个Portal,可供加入的Portlet有很多,如下图所示   
  22.   
  23. 10. 支持邮件通知,邮件通知可以同工作流中和工作流之外的事件关联   
  24. 11. 支持Time Tracking功能,这个功能用于项目管理中的任务管理是很方便的   
  25. 12. 支持CVS、SVN代码库的整合,同时支持Fisheye,这样可以让问题和代码关联   
  26.   
  27. 13. 自带备份机制,不用担心数据丢失。况且JIRA运行非常稳定,使用2年以来从未发生系统性故障   
  28. 14. 导入导出功能很完善,可以导出为XML文件,方便将数据从不同数据库之间迁移。   
  29. 15. 系统性能非常不错,在一台普通PC上,只分配了256M内存,整个系统有1000多个Issue,92个用户(同时在线使用应该有20个用户),同时还将 JIRA需要的数据库安装在一起可以很流畅的运行。同时这台PC还运行了CVS,VSS等等服务。   
  30. 16. 支持多种数据库,mysql, ms sqlserver, oracle等等,自带有内存数据库hsql db已经可以让JIRA运转起来。 配合MySQL已经足够应付40个人规模的项目。JIRA的数据库很简练,附件是作为文件形式存放的。   
  31. 17. 支持Plugin功能,如果有什么没有实现的功能,或许通过plugin可以实现,JIRA的网站上有很多plugin来下载   
  32. 18. JIRA针对开源项目是提供免费license的,所以其用户群很庞大,相应的你得到支持也是很多的,包括官方详尽的文档、Wiki,用户论坛等等   
  33. 19. 更多特性有待你来发掘   
  34. 1.3 JIRA的缺点   
  35. 1. JIRA是个商业软件,而Bugzilla、Mantis是开源免费的   
  36. 2. 对clear case没有官方支持,有一个plugin,但是状态时unsupported   
  37. 3. 专业性也带来了配置的复杂,建立一套完善的custom fields, workflow, permission scheme并不是一件容易的事情   
  38. 2 JIRA的安装   
  39. JIRA是一个Java Web Application, 自带的web server是Tomcat,所以熟悉J2EE开发的人来安装JIRA应该是轻车熟路的。JIRA 3.12版本之后已经提供windows installer形式的安装包,安装起来也变得很简单。以下介绍以windows安装包的形式来介绍   
  40. 2.1 安装步骤   
  41. JIRA提供 stanalone, war包,installer等的安装方式,以下安装以最简单的installer来介绍   
  42. 1. 下载Windows installer, Atlassian的网站提供下载。安装包有56M,这个包已经包括了JRE和Tomcat,所以可见JIRA的安装文件并不肥大。   
  43. 2. 双击EXE文件开始安装,安装路径可以任意选择。   
  44. 3. 安装向导结束后双击%JIRA_HOME%/bin/startup.bat可以启动JIRA,通过http://localhost:8080 访问JIRA应用,如果成功打开了页面则表明安装成功   
  45. 2.2 安装配置   
  46. 1. 安装数据库,自带的hsqldb是不赞成使用的,我们以mysql为例进行配置。首先安装mysql,安装过程见相关文档,一般不需要有特殊选项   
  47. 2. 建立数据库,用root用户登录mysql,创建一个名为jira的数据库(数据库名可以任意),字符集用如下图的选项:   
  48.   
  49. 3. 建立数据库用户,如下图所示,如果数据库和JIRA在同一台机器,主机那栏填localhost   
  50.   
  51. 并将jira数据库的所有权限赋予给 jira用户(JIRA初始化数据库时需要比较大的权限)   
  52.   
  53. 4. 下载mysql jdbc driver的jar包,并放入%JIRA_HOME%/common/lib目录。Mysql的jdbc驱动有很多版本,请下载适合你的mysql server的最新驱动,不然会产生一些意料不到的问题。   
  54. 5. 将%JIRA_HOME%/atlassian-jira\WEB-INF\classes\entityengine.xml中的datasource name="defaultDS" field-type-name="hsqldb" 改为mysql   
  55. 6. 将%JIRA_HOME%/conf/server.xml中的jdbc/JiraDS 修改为如下形式   
  56. "jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"  
  57.             username="jira"  
  58.             password="jira"  
  59.             driverClassName="com.mysql.jdbc.Driver"  
  60.             url="jdbc:mysql://localhost/jira?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"  
  61.             maxActive="20" />   
  62. 7. 将JIRA安装为NT服务。在CMD窗口运行bin/service.bat install即可安装,service.bat remove进行卸载。安装好打开服务如下图所示,点击“启动”按钮即可启动JIRA   
  63.   
  64. 8. 配置语言及通用选项。JIRA第一次启动会提示你选择语言项,最好选择英语,因为中文汉化不很完善,有些链接不会显示会导致功能缺陷。Index, attachment, backup等目录可以如下图所示来建立   
  65.   
  66. 到此JIRA就已经全部安装好了。   
  67. 3 Quick Start   
  68. 3.1 创建Project   
  69. JIRA默认的管理员是admin,密码也是admin,使用这个用户登录后来创建 Project。没有project的JIRA菜单很少,如下图所示:   
  70.   
  71. 1. 点击菜单中的ADMINISTRATION进入管理页面,点击Projects-Add Project来添加Project   
  72.   
  73. 2. 如下图填写必填项,key这个选项填完之后就不能修改了,所以想清楚填什么值最好,并且建议填3个字母以内的缩写。Project lead是必填的,但是这个时候只有admin一个用户,只能填admin了,增加用户后可以修改project lead为别人。后面的选项都用默认。最后点击Add则完成了Project的创建   
  74.   
  75. Project创建完成后,我们可以发现JIRA的菜单栏多了三个菜单:BROWSE PROJECT, FIND ISSUES, CREATE NEW ISSUE,功能分别是查看项目汇总统计信息,查询,创建新问题,详细使用在后面描述。   
  76. 3.2 查看用户组   
  77. 点击Group Browser可以看到JIRA默认提供的三个Group,在Quick Start中我们用这个三个用户组就可以了。管理Group也是通过这个界面来进行   
  78.   
  79. 3.3 创建用户   
  80. 1. 如下图通过User Browser-Add User来添加User   
  81.   
  82. 2. 下图中的Username是用户的登录名,将不能修改。Full Name是显示名,可以进行修改   
  83.   
  84. 3. 点Create后创建成功,如下图   
  85.   
  86. 点击Edit Groups可以编辑用户所在的组,用户默认的组是jira-users。   
  87. 4. 选择jira-developers然后点击如下图中的Join>> ,arthur将被加入jira-developers这个group   
  88.   
  89. 5. 改变TST Project的project lead。(Admin用户是超级管理员,最好不要在任何项目中担当角色)   
  90. 从ADMINISTRATION-Project进入,如下图点击 Edit   
  91.   
  92. 在Project Lead 栏输入arthur(jira 3.12.3版本系统会通过AJAX快速查询到用户进行选择)   
  93.   
  94. 一个项目不能只有一个project lead,我们按照上述方法创建两个jira-developers的用户:Carol, Ben 创建两个jira-users用户:Chris, Mike。 Jira-developers组是开发人员,职责是解决问题,jira-users组是测试组,职责是发现问题并创建问题测试问题   
  95. 3.4 创建Issue   
  96. 用arthur这个用户登录JIRA,点击CREATE NEW ISSUE进行问题创建。如下图,这个界面中有两个下拉框可以选择,Project中因为只有一个项目,所以没得选择,Issue Type有四个选项   
  97. Bug: 软件中的缺陷   
  98. New Feature: 需求之外增加的新功能   
  99. Task: 计划中的任务   
  100. Improvement:针对已经实现的功能的改进   
  101.   
  102. 我们选择Task,创建一个任务:Project Lead分配一个任务给Carol,内容是让Carol来做814日的早餐。如下填写信息:   
  103. Summary中填写概要信息,详细信息填写在 Description中,比如错误日志、详细需求等等   
  104. Due Date是指何时需要完成   
  105. Assignee填写指派人   
  106. Components 和Version的信息目前都是Unknown,因为针对Test Project我们没有配置这两个信息   
  107. Environment一般填写 Bug发生的环境,Bug往往是因为其环境有特殊性而导致   
  108. Priority默认有5个选项:   
  109.   
  110. 从图标可以看出其代表不同的优先级   
  111.   
  112. 点击Create进行创建,之后可以看到如下图的结果:   
  113. JIRA系统自动分配了一个Issue Key :TST-1,这个Key是唯一标识issue的编号,其他信息如图所示   
  114.   
  115. 3.5 处理Issue   
  116. Carol登录JIRA后在她的首页可以看到如下信息:   
  117.   
  118. 可以看到右边的Assigned To Me列表中有一条记录,这表示是需要处理的Issue,点击TST-1的链接进入如下界面:   
  119.   
  120. Available Workflow Actions中的链接是不同处理Issue的步骤,在开始做早餐之前,Carol应该点击Start Progress,之后TST-1的status变为 In progress, 半小时后Carol做完了早餐,她就应该点击Resolve Issue,之后进入如下界面:   
  121.   
  122. Resolution有如下选项:   
  123. Fixed:已经解决   
  124. Cannot Reproduce:问题无法重现   
  125. Won’t Fix:无法解决   
  126. Incomplete:未完成,未完成还还能叫做Resolved?   
  127. Duplicate:重复问题,选择这个的时候最好在Comment中写上重复的Issue KEY   
  128. Assignee填确认这个问题是否解决的人,一般填问题创建者   
  129. 点击Resolve之后Issue状态变成了Resolved   
  130. 用arthur登陆JIRA,在 Quick Search中输入TST-1可以快速找到TST-1这个Issue,经过严格测试之后可以确认问题已经解决,则可以选择Close Issue。   
  131. 在Available Workflow Actions点击Close Issue,在下一个界面填写Comment,之后Issue status变成了Closed,到此Issue处理结束。   
  132. 当然如果这个 Issue经过测试再次发生问题,可以选择Reopen Issue, Reopened的Issue后续处理同open状态的issue是一致的。   
  133. 4 定制你的JIRA(For Users)   
  134. 4.1 JIRA操作界面介绍   
  135. 1. 下图是首页界面介绍(点击菜单栏中的HOME进入)   
  136.   
  137. 注:QUICK SEARCH是一个非常有用的框框:   
  138. 1) 输入issue Key可以迅速打开这个issue,比如输入PR-10,则可以转入到PR-10的明细页面   
  139. 2) 当你已经工作在某个Project时,你只要在快速搜索框中输入issue Key的序号,即可完成1)中的功能,即输入10然后按回车既有PR-10的效果   
  140. 3) 输入非issue Key或非数字的字符等同于Filter中在Text Search中输入了特定的字符进行搜索   
  141.   
  142. 2. BROWSE PROJECT界面   
  143.   
  144. 3. FIND ISSUES界面   
  145.   
  146. 4. Issue Detail界面   
  147. 通过点击 issue Key进入,或者其他链接进入   
  148.   
  149. 5. ADMINISTRATION界面介绍   
  150. 最多菜单链接的一个界面,在后面章节中会有针对大多配置对应链接的说明。   
  151.   
  152. 4.2 修改个人信息   
  153. JIRA中的个人信息包括:密码、姓名、Email、 Filter、preference、Dashboard、Column Navigator等。   
  154. 通过JIRA右上部的Profile链接进入设置,进入后的界面如下图所示:   
  155.   
  156.   
  157. 其中Preferences可定制的选项包括浏览时每页最大issues数目,语言选项,Email格式。如果系统默认的语言是英文,你想把自己的界面改成中文,则可以通过这个地方将Locale改为中文即可   
  158. 4.3 定制Filter   
  159. Filter可以理解为过滤器、定制查询,即将一组查询条件保存起来。通过菜单栏中的FIND ISSUES进入   
  160. 我们以建立“最近一周解决或者关闭的问题”为例来建立一个filter:   
  161. 1. 在Project中选择目标项目,选择项目之后会得到一个如下的提示   
  162.   
  163. 改变了所选的Project,其对应的versions, components, custom fields都是可能不一致的,所以需要点击Click here这个链接来更新这些信息   
  164. 2. 在Issue Attributes中的Status选择Resolved和Closed(选择第二个值按住Ctrl再点击)   
  165. 3. 在Dates and Times中的updated: From中填上-1w (-1w表示一周以来,类似的符号有d天,h小时,m分钟,2h 30m表示2小时30分,注意两个时间之间有个空格)   
  166. 4. 点击View即可查询出满足以上条件的Issues,我们希望按照Update time来倒序排列这些issues,点击Updated那列的标题即可倒序排列,再点击一次会变成顺序排列,想按照其他字段来排序也是类似的操作。   
  167. 5. 如果确认查询出的issues已经是所想要的,剩下一步就是将这些条件保存为一个filter,点击Save it as a filter,如下图所示   
  168.   
  169. 填上filter名字,点击Save之后可以通过下图中的Summary看到刚才填写的条件概况   
  170.   
  171. 6. 通过Share链接还可以将这个Filter共享给其他人或者其他用户组   
  172. 4.4 定制Portal(Dashboard)   
  173. JIRA 将它的首页定义为Portal,定制Portal即定制自己的JIRA首页。通过Manage Portal进入定制界面,如下图所示的链接:(通过个人信息中的Dashboard  Config链接也可以进入)   
  174.   
  175. 进入的配置界面如下图所示:   
  176.   
  177. 其中Full configure可以修改当前的配置,Add New Portal Page可以增加一个portal 页面,我们通过Add New Portal Page来举例,Name中输入My Page, Start From选择Dashboard,然后点击Add按钮,之后可以得到如下图所示的效果:   
  178.   
  179. 点击其中的Full configure可以进行My Page的配置,如下图所示:   
  180.   
  181. 定制的界面分为左右两边,点击Add按钮增加内容,Edit、 Copy、Delete、上下左右箭头按钮顾名思义。   
  182. 我们点击Add按钮,准备在My Page上增加一个Project statistics,如下图来操作:   
  183.   
  184. Project Statistics还有下一个屏幕来提供选项,如下图所示:   
  185.   
  186. 我们选择需要添加的项目,统计类型我们关注的是状态,选择Status,第三个选项是已经解决的问题是不是要统计出来,之后点击Save,则将 Project Statistics这个portlet加入到了left column,我们要让它显示在右边,选中它点击向右箭头按钮即可。   
  187. 然后回到首页,我们可以看到如下的效果:   
  188.   
  189. Portlet有很多选项,我认为最有用的应该是Show Saved Filter,你可以首先定制好自己的Filter,然后把它加入到首页中,这样自己关注的issues就可以一目了然的看到了。   
  190. 注:   
  191. JIRA 管理员通过同样的方法来设置Default Dashboard,操作入口是:ADMINISTRATION-Default Dashboard   
  192. 4.5 定制Navigator Columns   
  193. 点击某个Filter进行issue查询,查询列表中的显示字段可以进行定制,可供的选项有:增加字段、减少字段、编排字段先后顺序。JIRA默认的字段包括: T,Key,Summary,Assignee,Reporter,Pr,Status,Res,Created,Updated,Due ,其中T是issue type, Pr是Priority, Due是Due date。默认的排序是按照Key倒序排列。   
  194. 通过列表上方的 Configure链接来进行定制,如下图:   
  195. 进入后的界面如下图:   
  196.   
  197. 注:   
  198. JIRA管理员通过同样的方法来设置 Navigator Columns,操作入口是:ADMINISTRATION-Navigator Columns   
  199.   
  200. 4.6 导出、打印Issues   
  201. JIRA在列表和明细界面提供了导出Word、导出Excel、打印页面的功能   
  202. 1. 列表操作   
  203.   
  204. 在查询列表页面中如上图提供了一系列的操作,其中   
  205. Printable链接提供一个便于打印的简洁HTML页面,如下图   
  206.   
  207. Full Content链接提供了一个便于打印的所有issues明细的HTML页面,如下图   
  208.   
  209. Word链接可以将所有issues明细导出成 word文档   
  210. Excel后面的两个链接:All fields导出所有字段为Excel,Current Fields导出当前字段为Excel   
  211. 2. Issue明细操作   
  212. 操作链接在Issue Detail中,功能与明细中的Word和Printable链接是一样的,如下图:   
  213.   
  214.   
  215. 4.7 制作报表   
  216. 报表制作通过 BROWSE PROJECT界面中的Report下的Single Level Group By Report链接进入,如下图:   
  217.   
  218. 进入制作报表界面后,可以选择不同的Filter和不同的统计类型进行报表显示,如下图:   
  219.   
  220. 制作完的报表如下图所示:   
  221.   
  222. 5 让你的JIRA更专业(For Administrator)   
  223. 5.1 常用配置   
  224. 5.1.1 Users, Groups & Roles   
  225. 用户和用户组已经在Quick Start中描述过。Project Role Browser中可以定制项目角色,JIRA提供的三种用户角色略显不够,一般的项目包括project managers, team leaders, developers, testers,不妨按照这个思路来添加项目角色。项目角色添加好之后可以通过Permission Scheme来对角色分配不同的权限   
  226. 5.1.2 Global Settings   
  227.  General Configuration   
  228. 这个配置界面有很多项目可以配置,每个项目JIRA都有说明,需要解释的有:   
  229. 1. Base URL,这个选项很有必要设置正确,JIRA会对描述、comments中的Issue KEY自动加上链接,如果Base URL不正确,所有的链接都将是错误的   
  230. 2. Indexing language,这个选项默认是English,在Character encoding是UTF-8的情况下,indexing language是English也没有影响,即使你在创建issue时使用了中文,也能建立索引   
  231. 3. Default language,安装好JIRA后第一次进入JIRA选择语言后可以通过这个地方来修改,正如之前说的,最好选择成英文。   
  232. 4. Options里面的选项没有特别要求使用默认设置即可   
  233.  Global Permissions   
  234. 这里的权限和项目中的权限是不同的,项目中的权限指的是创建issue、编辑issue等等,这里的权限是一些管理权限、创建filter的权限等与项目无关的权限   
  235.  Look and Feel   
  236. 这个地方可以打造你的JIRA的外观,包括配色、Logo、日期格式   
  237.  Mail Servers   
  238. 配置邮件服务器,可以配置SMTP或者JNDI   
  239. 5.1.3 Issue Settings   
  240. 可以在ADMINISTRATION- Issue Settings中进行以下项目的配置:   
  241. Issue Types   
  242. Priority   
  243. Resolutions   
  244. Statuses   
  245. JIRA提供两种配置:翻译和编辑这些resolution。翻译可以适应多语言环境。编辑可以改变字段属性、排序位置、默认值、增删字段值等。这四个字段的配置都是类似的方法,参见JIRA提供界面应该不存在难度,以下列出配置中需要注意之处   
  246.  配置Issue Types   
  247. 系统自带的Issue Type包括:Bug, Task, Improvement, New Feature, sub-task .如果需要增加自己的问题类型,下面的Issue Types中进行配置。按照界面进行添加、编辑Issue Type,没什么特别。   
  248. 但如果想删除已经添加好的Issue Type可能会碰到一些麻烦,当该Issue Type下存在issue的时候是不能删除这个Issue Type的。有两种办法来删除这个Issue Type   
  249. 1. 编辑相应的Issue,将Issue Type改成其他不删除的Issue Type。当Issue被close之后将不能被编辑,所以这种方法存在限制。   
  250. 2. 改变相应Project的Issue Type Scheme,这个scheme必须不包含待删除的Issue Type,在改变scheme的时候可能会报错,如下图所示:   
  251.   
  252. 这是因为操作用户没有权限,应该在Project Permission中增加move issue的权限给操作用户。之后按照向导进行操作即可。   
  253.  配置Resolutions   
  254. 通过ADMINISTRATION-Issue Settings中的Resolutions进行设置。   
  255. JIRA 默认的Resolutions包括:   
  256. 1. Fixed   
  257. 2. Won't Fix   
  258. 3. Duplicate   
  259. 4. Incomplete   
  260. 5. Cannot Reproduce   
  261. 基本上这五种解决办法已经足够了。   
  262. 注意:   
  263. Resolution 这个字段被JIRA默认的几个filter做了引用,所以千万不要自定义一个字段也叫Resolution,同时又把系统自带的Resolutions字段屏蔽!这些filter包括open issues, OUTSTANDING, filter中的条件都是Resolution为UNRESOLVED,这个UNRESOLVED的含义是Resolution字段没有设置任何值或者 Issue Status为非Resolved和非Closed,所以当一个Issue状态为Resolved,即使它的Resolution为Won’t Fix,它也不会出现在open issues里面,即无法解决也是一种解决办法…   
  264.  配置Priority   
  265. Priority的颜色、图标都是可以修改的,最常用的Major级别的颜色是绿色,不妨修改为警告色黄色可以引起更多的重视   
  266.  配置Statuses   
  267. 这个字段是供workflow使用的一个字段,当在做工作流配置时如果觉得状态不够,那在这里添加即可。状态可以关联Icon可以让查看issue时更直观,JIRA提供了17个图标,足够来挑选了。   
  268. 5.1.4 Options & Settings   
  269. 1. Send E-mail   
  270. 可以通过这个功能给某个用户组或者某个项目的特定项目角色发送Email   
  271. 2. Announcement Banner   
  272. 这个地方可以设置一个横幅在JIRA菜单栏下面,可以写上重要的使用说明、通知等等,支持HTML   
  273. 5.2 自定义工作流   
  274. 配置工作流之前请先定好Issue有哪些状态,状态的配置见常用配置--Issue Settings部分。   
  275. 工作流配置从 ADMINISTRATION-General Settings-Workflows进入,系统默认有一个叫做jira的工作流,这个工作流是只读的不能修改。但是可以以此为蓝本来建立工作流,通过 Operations中Copy链接即复制了一个一样的工作流。点击Operations--steps进入步骤的设置,进入的界面如下图所示:   
  276.   
  277. 从图中看Open step,Linked Status表示执行完这个step后,issue的状态会变成Open,Transitions表示对于Open状态的issue可以执行的操作,Operations是设置时用到的链接。   
  278. 下面以几个例子来说明如何配置工作流:   
  279. 1. 我们认为Open状态的issue不能有Resolve Issue这个Transition,所以准备把它删除,点击Delete Transitions,之后在多选框中选择Resolve Issue,删除即可。   
  280. 2. 对于Open状态的issues,Start Progress这个操作我们想控制它的权限,只有开发人员才能执行这个操作。通过点击Start Progress这个链接进入设置,我们看到在Conditions这个Tab中已经存在一个条件,含义是“只有assignee才能执行这个操作”,这个condition是合理的,保留。   
  281.   
  282. 我们通过点击Add链接来增加另外一个condition,之后会得到一个列表来选择 condition的类型,开发人员才能执行同Project role比较接近,选择User is in Project Role。其实选择User is in group 然后配置一个开发人员组也是可以达到同样的效果。   
  283.   
  284. 在下一屏中选择 Developers这个Project Role,添加完我们可以看到如下图所示的Conditions   
  285.   
  286. JIRA默认将增加的 condition用AND来连接,如果需要也可以将条件用OR来连接。   
  287. 熟悉以上操作后,通过Add New Step,调整每个step关联的status就可以实现复杂的自定义工作流。   
  288. 工作流定义好之后,还需要定义workflow scheme,这个工作流才能被项目引用。通过ADMINISTRATION-Schemes-Workflow Schemes进入配置界面,先增加一个scheme,然后在Operations中的Workflows链接中关联workflow。JIRA在 workflow之外再包装一层scheme的意义在于可以针对不同的issue type使用不同的工作流,如下图。   
  289.   
  290. 为了简洁起见,我们一般选择All unassigned Issue Types对应一个工作流。   
  291. 定义好workflow scheme之后才能被特定的Project所使用,通过ADMINISTRATION—Projects,选择需要配置的Project进行配置,如下图:   
  292.   
  293. 在Workflow Scheme中点击Select进行scheme的选择。在Associate的时候会得到一个警告:   
  294.   
  295. 针对已经存在issues的project,修改工作流可能会引起状态等信息的丢失,所以最好先做好JIRA数据的备份以免发生意外。(我修改过1000个 issues的project的工作流,JIRA可以很好的处理,不用因为有警告而太紧张,不过事先备份是必须的操作)   
  296. 另外Project配置界面有很多scheme可配置,方法是类似的,后面不再详细描述。可以配置的scheme包括:   
  297. Issue Type Scheme   
  298. Notification Scheme   
  299. Permission Scheme   
  300. Issue Security Scheme   
  301. Field Configuration Scheme   
  302. Issue Type Screen Scheme   
  303. Workflow Scheme   
  304. 5.3 自定义权限   
  305. JIRA中的权限包括两部分:Global Permission和Project Permission,前者已经描述,配置也相对简单。本节描述的是后者。   
  306. 通过ADMINISTRATION—Schemes— Permission Schemes进入配置。系统定义了一个Default Permission Scheme,并且这个scheme中的权限是可以直接进行修改的,点击Operations—permissions进行修改。JIRA将权限分细项列表在配置界面中,通过Operations中Add链接或者页面上方的Grant Permission进行权限增加,通过Delete链接删除赋予给特定对象的权限。   
  307. 5.4 自定义字段   
  308. 通过 ADMINISTRATION—Issue Fields—Custom Fields进行配置,点击Add Custom Field进行字段添加,再下一步是选择字段的类型,常见的字符型、数字型、日期型、下拉框、双重下拉框、多选框、单选按钮等等JIRA都支持。   
  309. 我们选择Text Field (< 255 characters)做个测试,之后天上字段名称、字段描述。Search Template表示该字段使用的搜索类型,如果选择None,这个字段将不会出现在Find Issues里面的查询条件中,即对该字段将不能进行查询。后面还有两个选项:issue types,projects,目的是让这个自定义的字段出现在特定的issue type和特定的项目中。点击Finish之后会得到如下屏幕:   
  310.   
  311. 这个设置屏幕是将添加好的自定义字段加入到特定的界面中,选择需要显示该字段的界面点击update即可完成设置。设置完得到如下界面:   
  312.   
  313. Configure 链接可以进行issue types, projects设置,Edit可以进行字段名称和search template修改,Screens可以对字段出现的界面进行配置。   
  314. 注意:   
  315. 1. 定义好的字段是不能修改字段类型的!   
  316. 2. Text Field类型存在一个Bug,如果对该字段填值都是数字,比如输入300,之后通过Filter来搜索issue将会失败,但是如果输入L300, 然后通过L300来搜索是可以搜索到相应issue。   
  317. 5.5 自定义界面(Screen)   
  318. 通过ADMINISTRATION— Issue Fields—Screens进行配置,系统自带有三个Screen,通过Operations中的Configure可以进入配置界面,在这个界面中可以进行字段的增删、字段顺序的排列。   
  319. 5.6 自定义事件通知   
  320. 通过ADMINISTRATION—Schemes— Notification Schemes进行配置,系统默认的通知策略是当任意事件发生时都会通知Reporter、Assignee和Watchers。   
  321. 5.7 和代码库(SVN,CVS)关联   
  322. 在测试过程中tester提交了一个bug,developer解决了这个bug,同时提交了几个java类,如果你想看到针对这个bug项目里面的代码做了哪些修改,jira-subversion plugin就发挥作用了。安装好subversion plugin之后,只需要developer在做svn commit的时候在comments里面写上jira id,在jira的subversion tab里面就会显示这个comments和这次提交的文件。   
  323.   
  324. 注:   
  325. 目前最新的 atlassian-jira-subversion-plugin-0.10.3 不支持svn 1.5,不过通过升级svnkit到1.1.8以上版本就能解决这个问题   
  326. 5.8 和Fisheye关联   
  327. 而jira fisheye plugin则是将fisheye的功能集成到jira中,同时也是随jira id来显示版本的变更记录:   
  328.   
  329. Fisheye plugin配置时,记得在fisheye管理界面中把Remote API设置成ON,要不然plugin连不上fisheye的!   
  330. 5.9 Sub-tasks   
  331. 通过Global Settings—Sub-tasks来开通这个功能   
  332. 5.10 Time tracking   
  333. 通过Global Settings—Sub-tasks来开通这个功能,其中对一周几天,一天几个小时需要先定义好。   
  334.   
  335. JIRA的网站也有一个描述:Project Management Tool,用JIRA实现项目管理最重要的是开通Time tracking功能。   
  336. Activate Time tracking功能之后在创建issue时多了一个字段:   
  337.   
  338. 这个字段的含义是预估完成这个任务所需要的时间。   
  339. 同时在处理issue时,多了一个操作:Worklog,如下图所示   
  340.   
  341. 点击其中的Log work done进行工作日志的记录:   
  342.   
  343. 记录之后在issue detail界面的work log Tab可以看到记录:   
  344.   
  345. 开通Time Tracking之后,JIRA还提供了一个Time Tracking Report   
  346.   
  347. 报表如下图所示:   
  348.   
  349. JIRA完全以时间来确定工作的进度,这种算法还得好好适应一下。   
  350. 5.11 备份、导入导出   
  351. 备份通过Import & Export-- Backup Data to XML来操作,导出路径写服务器上的绝对路径,Backup As Zip这个复选框选上则会将XML文件压缩成一个zip包。   
  352. 导入则通过Restore Data from XML来操作,导入的文件可以是XML,也可以是zip。   
  353. JIRA的导入导出都是基于XML格式,与数据库平台无关,这也十分方便系统迁移。   
  354. 同时JIRA还提供了定时的备份机制,通过ADMINISTRATION—System—Services可以看到这个后台的服务:   
  355.   
  356. JIRA 默认会在每12个小时进行系统备份一次,其数据安全还是很有保障的。   
  357. 5.12 系统优化   
  358. 1. NT 服务修改JVM内存大小   
  359. 修改%JIRA_HOME%/bin/service.bat文件中的:   
  360. "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 256 --JvmMx 512 --Startup auto   
  361. 其中-JvmMs是最小内存数,-JvmMx是最大内存数,一般最小256,最大512足够了。修改完后执行   
  362. service.bat remove 将原有的NT 服务删除(如果JIRA服务处于启动状态先停止服务)   
  363. service.bat install 安装新的NT服务   
  364. 启动新的服务即生效了   
  365. 2. 非NT服务修改JVM内存大小   
  366. 修改%JIRA_HOME%/bin下面的 setenv.bat文件,修改JAVA_OPTS这个环境变量   
  367. set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true  
  368. 其中 -Xms256m表示最小内存,-Xmx512m表示最大内存   
  369. 3. 让JVM进行garbage collection   
  370. 如果在使用 JIRA时感到打开页面明显变慢,可能的原因是JVM内存吃紧,可以考虑进行手动garbage collection,操作如下   
  371. 进入 Administration-System Info,在Java VM Memory Statistics这栏可以看到如下图所示信息:   
  372.   
  373. 如果Memory Graph中显示20% Free,甚至更低,点击右边的Force garbage collection后你会得到更到free的内存,一般来说之后打开页面会变快一些。   
  374. 6 JIRA需要改进的地方   
  375. 1. 上传附件时可以填一个comment,但是这个comment和普通的comment是没有任何区别的,它并不会和你上传的这个附件进行关联。当你想对这个附件加一些描述的时候,你只能在comment里面指明附件名称,这样才能手工关联附件和comment。   
  376. 2. Redmine的Calendar是一个非常不错的设计,将每一天的工作可以一目了然的区分开来,虽然在JIRA中也可以通过filter来实现,但还是不够直观,redmine的calendar样子见图:   
  377.   
  378. 当然这个calendar结合到JIRA中可以好好改善改善,比如加上My Calendar只显示自己的活动,特定Group的Calendar,特定Project的Calendar等等。   
  379. 3. 关于comments在Redmine中有一个reply的功能,这个功能也是个不错的设计,JIRA中的comments是没有关联的,只能通过自己通过其中的含义来关联,不过一般来说这也足够了。   
  380. 4. 在work log中可以加上一个如TodoList中% complete字段,当问题的% complete达到100%时才算完成,而不是时间达到estimate的时间才算完成,其实JIRA的time tracking计算任务的进度算法真是太没道理了,需要大大的改进。