1 JIRA簡介 1.1 概要介紹 JIRA的生產(chǎn)者把JIRA定義為Professional Issue Tracker,即它是一個(gè)專業(yè)的問題跟蹤管理的軟件。這里的”問題”對應(yīng)的英文單詞是Issue,所以含義比較廣,包括Bug,Task,Enhancement,Improvement等等跟軟件開發(fā)相關(guān)的名詞。跟蹤管理即對問題的整個(gè)生命周期進(jìn)行記錄和管理。一個(gè)問題從創(chuàng)建到解決到關(guān)閉涉及到很多相關(guān)信息,包括是什么問題,誰發(fā)現(xiàn)的問題,誰處理了這個(gè)問題,如何處理的,相應(yīng)的代碼有什么改變等等,JIRA可以方便的記錄這些信息,并且在問題的不同狀態(tài)呈現(xiàn)在相應(yīng)的責(zé)任人面前。相似的軟件有Bugzilla,Trac,Mantis,Clear Quest, Streber, 等。 進(jìn)行問題跟蹤管理的好處是: 1. 讓系統(tǒng)來記住Task,Bug等等信息,而不僅僅靠項(xiàng)目經(jīng)理和程序員的腦袋來記憶。人腦記憶的東西往往是不準(zhǔn)確的。 2. 問題跟蹤管理可以定制流程,可以有效提高工作效率 3. 用專業(yè)的系統(tǒng)來進(jìn)行問題跟蹤管理能帶來更多的好處,詳細(xì)見下面JIRA的優(yōu)點(diǎn) 1.2 JIRA的優(yōu)點(diǎn) JIRA有很多專業(yè)特性,不愧為介紹中說的Professional這個(gè)詞。 1. 針對問題其默認(rèn)定義了豐富的字段來記錄問題的各種信息,包括Issue Type, Issue summary, Issue Description, priority, assignee, reporter, resolutions等等 2. 強(qiáng)大的自定義字段功能,自定義字段自帶有22中類型可以選擇,而且還可以通過JIRA Extension來支持更多類型。22種類型如下圖所示:
3. 針對每個(gè)字段都能進(jìn)行屏幕,項(xiàng)目,問題類型等配置,可以方便的控制字段應(yīng)該出現(xiàn)在哪里,而不應(yīng)該出現(xiàn)哪里。 4. 默認(rèn)定義了工作流的一些狀態(tài): new, open, defer, pending, resolved, reopened, closed。 默認(rèn)定義了一個(gè)簡易的工作流, open-in progress-resolved-closed 5. 強(qiáng)大的自定義工作流功能,針對不同的流程節(jié)點(diǎn)可以定義不同的權(quán)限、字段、后續(xù)可供選擇的處理方式。 6. 豐富的權(quán)限管理配置,可以針對項(xiàng)目、用戶、用戶組、項(xiàng)目角色、操作定義各種組合定義 7. 支持附件,同時(shí)針對圖片附件有特別支持,可以圖片附件直接在網(wǎng)頁中顯示,如下圖
8. 可方便地定制查詢(Filter),不同的查詢可以快速找到你關(guān)注的問題。查詢條件可以對絕大部分字段設(shè)定條件。 9. 用戶首頁可以定制,并且可以定制的查詢放入首頁,這樣可以方便查看關(guān)注的內(nèi)容。首頁被定義為一個(gè)Portal,可供加入的Portlet有很多,如下圖所示
10. 支持郵件通知,郵件通知可以同工作流中和工作流之外的事件關(guān)聯(lián) 11. 支持Time Tracking功能,這個(gè)功能用于項(xiàng)目管理中的任務(wù)管理是很方便的 12. 支持CVS、SVN代碼庫的整合,同時(shí)支持Fisheye,這樣可以讓問題和代碼關(guān)聯(lián)
13. 自帶備份機(jī)制,不用擔(dān)心數(shù)據(jù)丟失。況且JIRA運(yùn)行非常穩(wěn)定,使用2年以來從未發(fā)生系統(tǒng)性故障 14. 導(dǎo)入導(dǎo)出功能很完善,可以導(dǎo)出為XML文件,方便將數(shù)據(jù)從不同數(shù)據(jù)庫之間遷移。 15. 系統(tǒng)性能非常不錯(cuò),在一臺(tái)普通PC上,只分配了256M內(nèi)存,整個(gè)系統(tǒng)有1000多個(gè)Issue,92個(gè)用戶(同時(shí)在線使用應(yīng)該有20個(gè)用戶),同時(shí)還將JIRA需要的數(shù)據(jù)庫安裝在一起可以很流暢的運(yùn)行。同時(shí)這臺(tái)PC還運(yùn)行了CVS,VSS等等服務(wù)。 16. 支持多種數(shù)據(jù)庫,mysql, ms sqlserver, oracle等等,自帶有內(nèi)存數(shù)據(jù)庫hsql db已經(jīng)可以讓JIRA運(yùn)轉(zhuǎn)起來。 配合MySQL已經(jīng)足夠應(yīng)付40個(gè)人規(guī)模的項(xiàng)目。JIRA的數(shù)據(jù)庫很簡練,附件是作為文件形式存放的。 17. 支持Plugin功能,如果有什么沒有實(shí)現(xiàn)的功能,或許通過plugin可以實(shí)現(xiàn),JIRA的網(wǎng)站上有很多plugin來下載 18. JIRA針對開源項(xiàng)目是提供免費(fèi)license的,所以其用戶群很龐大,相應(yīng)的你得到支持也是很多的,包括官方詳盡的文檔、Wiki,用戶論壇等等 19. 更多特性有待你來發(fā)掘 1.3 JIRA的缺點(diǎn) 1. JIRA是個(gè)商業(yè)軟件,而Bugzilla、Mantis是開源免費(fèi)的 2. 對clear case沒有官方支持,有一個(gè)plugin,但是狀態(tài)時(shí)unsupported 3. 專業(yè)性也帶來了配置的復(fù)雜,建立一套完善的custom fields, workflow, permission scheme并不是一件容易的事情 2 JIRA的安裝 JIRA是一個(gè)Java Web Application, 自帶的web server是Tomcat,所以熟悉J2EE開發(fā)的人來安裝JIRA應(yīng)該是輕車熟路的。JIRA 3.12版本之后已經(jīng)提供windows installer形式的安裝包,安裝起來也變得很簡單。以下介紹以windows安裝包的形式來介紹 2.1 安裝步驟 JIRA提供stanalone, war包,installer等的安裝方式,以下安裝以最簡單的installer來介紹 1. 下載Windows installer, Atlassian的網(wǎng)站提供下載。安裝包有56M,這個(gè)包已經(jīng)包括了JRE和Tomcat,所以可見JIRA的安裝文件并不肥大。 2. 雙擊EXE文件開始安裝,安裝路徑可以任意選擇。 3. 安裝向?qū)ЫY(jié)束后雙擊%JIRA_HOME%/bin/startup.bat可以啟動(dòng)JIRA,通過http://localhost:8080 訪問JIRA應(yīng)用,如果成功打開了頁面則表明安裝成功 2.2 安裝配置 1. 安裝數(shù)據(jù)庫,自帶的hsqldb是不贊成使用的,我們以mysql為例進(jìn)行配置。首先安裝mysql,安裝過程見相關(guān)文檔,一般不需要有特殊選項(xiàng) 2. 建立數(shù)據(jù)庫,用root用戶登錄mysql,創(chuàng)建一個(gè)名為jira的數(shù)據(jù)庫(數(shù)據(jù)庫名可以任意),字符集用如下圖的選項(xiàng):
3. 建立數(shù)據(jù)庫用戶,如下圖所示,如果數(shù)據(jù)庫和JIRA在同一臺(tái)機(jī)器,主機(jī)那欄填localhost
并將jira數(shù)據(jù)庫的所有權(quán)限賦予給jira用戶(JIRA初始化數(shù)據(jù)庫時(shí)需要比較大的權(quán)限)
4. 下載mysql jdbc driver的jar包,并放入%JIRA_HOME%/common/lib目錄。Mysql的jdbc驅(qū)動(dòng)有很多版本,請下載適合你的mysql server的最新驅(qū)動(dòng),不然會(huì)產(chǎn)生一些意料不到的問題。 5. 將%JIRA_HOME%/atlassian-jira\WEB-INF\classes\entityengine.xml中的datasource name="defaultDS" field-type-name="hsqldb" 改為mysql 6. 將%JIRA_HOME%/conf/server.xml中的jdbc/JiraDS 修改為如下形式 <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource" username="jira" password="jira" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/jira?autoReconnect=true&useUnicode=true&characterEncoding=UTF8" maxActive="20" /> 7. 將JIRA安裝為NT服務(wù)。在CMD窗口運(yùn)行bin/service.bat install即可安裝,service.bat remove進(jìn)行卸載。安裝好打開服務(wù)如下圖所示,點(diǎn)擊“啟動(dòng)”按鈕即可啟動(dòng)JIRA
8. 配置語言及通用選項(xiàng)。JIRA第一次啟動(dòng)會(huì)提示你選擇語言項(xiàng),最好選擇英語,因?yàn)橹形臐h化不很完善,有些鏈接不會(huì)顯示會(huì)導(dǎo)致功能缺陷。Index, attachment, backup等目錄可以如下圖所示來建立
到此JIRA就已經(jīng)全部安裝好了。 3 Quick Start 3.1 創(chuàng)建Project JIRA默認(rèn)的管理員是admin,密碼也是admin,使用這個(gè)用戶登錄后來創(chuàng)建Project。沒有project的JIRA菜單很少,如下圖所示:
1. 點(diǎn)擊菜單中的ADMINISTRATION進(jìn)入管理頁面,點(diǎn)擊Projects-Add Project來添加Project
2. 如下圖填寫必填項(xiàng),key這個(gè)選項(xiàng)填完之后就不能修改了,所以想清楚填什么值最好,并且建議填3個(gè)字母以內(nèi)的縮寫。Project lead是必填的,但是這個(gè)時(shí)候只有admin一個(gè)用戶,只能填admin了,增加用戶后可以修改project lead為別人。后面的選項(xiàng)都用默認(rèn)。最后點(diǎn)擊Add則完成了Project的創(chuàng)建
Project創(chuàng)建完成后,我們可以發(fā)現(xiàn)JIRA的菜單欄多了三個(gè)菜單:BROWSE PROJECT, FIND ISSUES, CREATE NEW ISSUE,功能分別是查看項(xiàng)目匯總統(tǒng)計(jì)信息,查詢,創(chuàng)建新問題,詳細(xì)使用在后面描述。 3.2 查看用戶組 點(diǎn)擊Group Browser可以看到JIRA默認(rèn)提供的三個(gè)Group,在Quick Start中我們用這個(gè)三個(gè)用戶組就可以了。管理Group也是通過這個(gè)界面來進(jìn)行
3.3 創(chuàng)建用戶 1. 如下圖通過User Browser-Add User來添加User
2. 下圖中的Username是用戶的登錄名,將不能修改。Full Name是顯示名,可以進(jìn)行修改
3. 點(diǎn)Create后創(chuàng)建成功,如下圖
點(diǎn)擊Edit Groups可以編輯用戶所在的組,用戶默認(rèn)的組是jira-users。 4. 選擇jira-developers然后點(diǎn)擊如下圖中的Join>> ,arthur將被加入jira-developers這個(gè)group
5. 改變TST Project的project lead。(Admin用戶是超級管理員,最好不要在任何項(xiàng)目中擔(dān)當(dāng)角色) 從ADMINISTRATION-Project進(jìn)入,如下圖點(diǎn)擊Edit
在Project Lead 欄輸入arthur(jira 3.12.3版本系統(tǒng)會(huì)通過AJAX快速查詢到用戶進(jìn)行選擇)
一個(gè)項(xiàng)目不能只有一個(gè)project lead,我們按照上述方法創(chuàng)建兩個(gè)jira-developers的用戶:Carol, Ben 創(chuàng)建兩個(gè)jira-users用戶:Chris, Mike。 Jira-developers組是開發(fā)人員,職責(zé)是解決問題,jira-users組是測試組,職責(zé)是發(fā)現(xiàn)問題并創(chuàng)建問題測試問題 3.4 創(chuàng)建Issue 用arthur這個(gè)用戶登錄JIRA,點(diǎn)擊CREATE NEW ISSUE進(jìn)行問題創(chuàng)建。如下圖,這個(gè)界面中有兩個(gè)下拉框可以選擇,Project中因?yàn)橹挥幸粋€(gè)項(xiàng)目,所以沒得選擇,Issue Type有四個(gè)選項(xiàng) Bug: 軟件中的缺陷 New Feature: 需求之外增加的新功能 Task: 計(jì)劃中的任務(wù) Improvement:針對已經(jīng)實(shí)現(xiàn)的功能的改進(jìn)
我們選擇Task,創(chuàng)建一個(gè)任務(wù):Project Lead分配一個(gè)任務(wù)給Carol,內(nèi)容是讓Carol來做8月14日的早餐。如下填寫信息: Summary中填寫概要信息,詳細(xì)信息填寫在Description中,比如錯(cuò)誤日志、詳細(xì)需求等等 Due Date是指何時(shí)需要完成 Assignee填寫指派人 Components和Version的信息目前都是Unknown,因?yàn)獒槍est Project我們沒有配置這兩個(gè)信息 Environment一般填寫B(tài)ug發(fā)生的環(huán)境,Bug往往是因?yàn)槠洵h(huán)境有特殊性而導(dǎo)致 Priority默認(rèn)有5個(gè)選項(xiàng):
從圖標(biāo)可以看出其代表不同的優(yōu)先級
點(diǎn)擊Create進(jìn)行創(chuàng)建,之后可以看到如下圖的結(jié)果: JIRA系統(tǒng)自動(dòng)分配了一個(gè)Issue Key :TST-1,這個(gè)Key是唯一標(biāo)識(shí)issue的編號(hào),其他信息如圖所示
3.5 處理Issue Carol登錄JIRA后在她的首頁可以看到如下信息:
可以看到右邊的Assigned To Me列表中有一條記錄,這表示是需要處理的Issue,點(diǎn)擊TST-1的鏈接進(jìn)入如下界面:
Available Workflow Actions中的鏈接是不同處理Issue的步驟,在開始做早餐之前,Carol應(yīng)該點(diǎn)擊Start Progress,之后TST-1的status變?yōu)?In progress, 半小時(shí)后Carol做完了早餐,她就應(yīng)該點(diǎn)擊Resolve Issue,之后進(jìn)入如下界面:
Resolution有如下選項(xiàng): Fixed:已經(jīng)解決 Cannot Reproduce:問題無法重現(xiàn) Won’t Fix:無法解決 Incomplete:未完成,未完成還還能叫做Resolved? Duplicate:重復(fù)問題,選擇這個(gè)的時(shí)候最好在Comment中寫上重復(fù)的Issue KEY Assignee填確認(rèn)這個(gè)問題是否解決的人,一般填問題創(chuàng)建者 點(diǎn)擊Resolve之后Issue狀態(tài)變成了Resolved 用arthur登陸JIRA,在Quick Search中輸入TST-1可以快速找到TST-1這個(gè)Issue,經(jīng)過嚴(yán)格測試之后可以確認(rèn)問題已經(jīng)解決,則可以選擇Close Issue。 在Available Workflow Actions點(diǎn)擊Close Issue,在下一個(gè)界面填寫Comment,之后Issue status變成了Closed,到此Issue處理結(jié)束。 當(dāng)然如果這個(gè)Issue經(jīng)過測試再次發(fā)生問題,可以選擇Reopen Issue, Reopened的Issue后續(xù)處理同open狀態(tài)的issue是一致的。 4 定制你的JIRA(For Users) 4.1 JIRA操作界面介紹 1. 下圖是首頁界面介紹(點(diǎn)擊菜單欄中的HOME進(jìn)入)
注:QUICK SEARCH是一個(gè)非常有用的框框: 1) 輸入issue Key可以迅速打開這個(gè)issue,比如輸入PR-10,則可以轉(zhuǎn)入到PR-10的明細(xì)頁面 2) 當(dāng)你已經(jīng)工作在某個(gè)Project時(shí),你只要在快速搜索框中輸入issue Key的序號(hào),即可完成1)中的功能,即輸入10然后按回車既有PR-10的效果 3) 輸入非issue Key或非數(shù)字的字符等同于Filter中在Text Search中輸入了特定的字符進(jìn)行搜索
2. BROWSE PROJECT界面
3. FIND ISSUES界面
4. Issue Detail界面 通過點(diǎn)擊issue Key進(jìn)入,或者其他鏈接進(jìn)入
5. ADMINISTRATION界面介紹 最多菜單鏈接的一個(gè)界面,在后面章節(jié)中會(huì)有針對大多配置對應(yīng)鏈接的說明。
4.2 修改個(gè)人信息 JIRA中的個(gè)人信息包括:密碼、姓名、Email、Filter、preference、Dashboard、Column Navigator等。 通過JIRA右上部的Profile鏈接進(jìn)入設(shè)置,進(jìn)入后的界面如下圖所示:
其中Preferences可定制的選項(xiàng)包括瀏覽時(shí)每頁最大issues數(shù)目,語言選項(xiàng),Email格式。如果系統(tǒng)默認(rèn)的語言是英文,你想把自己的界面改成中文,則可以通過這個(gè)地方將Locale改為中文即可 4.3 定制Filter Filter可以理解為過濾器、定制查詢,即將一組查詢條件保存起來。通過菜單欄中的FIND ISSUES進(jìn)入 我們以建立“最近一周解決或者關(guān)閉的問題”為例來建立一個(gè)filter: 1. 在Project中選擇目標(biāo)項(xiàng)目,選擇項(xiàng)目之后會(huì)得到一個(gè)如下的提示
改變了所選的Project,其對應(yīng)的versions, components, custom fields都是可能不一致的,所以需要點(diǎn)擊Click here這個(gè)鏈接來更新這些信息 2. 在Issue Attributes中的Status選擇Resolved和Closed(選擇第二個(gè)值按住Ctrl再點(diǎn)擊) 3. 在Dates and Times中的updated: From中填上-1w (-1w表示一周以來,類似的符號(hào)有d天,h小時(shí),m分鐘,2h 30m表示2小時(shí)30分,注意兩個(gè)時(shí)間之間有個(gè)空格) 4. 點(diǎn)擊View即可查詢出滿足以上條件的Issues,我們希望按照Update time來倒序排列這些issues,點(diǎn)擊Updated那列的標(biāo)題即可倒序排列,再點(diǎn)擊一次會(huì)變成順序排列,想按照其他字段來排序也是類似的操作。 5. 如果確認(rèn)查詢出的issues已經(jīng)是所想要的,剩下一步就是將這些條件保存為一個(gè)filter,點(diǎn)擊Save it as a filter,如下圖所示
填上filter名字,點(diǎn)擊Save之后可以通過下圖中的Summary看到剛才填寫的條件概況
6. 通過Share鏈接還可以將這個(gè)Filter共享給其他人或者其他用戶組 4.4 定制Portal(Dashboard) JIRA將它的首頁定義為Portal,定制Portal即定制自己的JIRA首頁。通過Manage Portal進(jìn)入定制界面,如下圖所示的鏈接:(通過個(gè)人信息中的Dashboard Config鏈接也可以進(jìn)入)
進(jìn)入的配置界面如下圖所示:
其中Full configure可以修改當(dāng)前的配置,Add New Portal Page可以增加一個(gè)portal 頁面,我們通過Add New Portal Page來舉例,Name中輸入My Page, Start From選擇Dashboard,然后點(diǎn)擊Add按鈕,之后可以得到如下圖所示的效果:
點(diǎn)擊其中的Full configure可以進(jìn)行My Page的配置,如下圖所示:
定制的界面分為左右兩邊,點(diǎn)擊Add按鈕增加內(nèi)容,Edit、Copy、Delete、上下左右箭頭按鈕顧名思義。 我們點(diǎn)擊Add按鈕,準(zhǔn)備在My Page上增加一個(gè)Project statistics,如下圖來操作:
Project Statistics還有下一個(gè)屏幕來提供選項(xiàng),如下圖所示:
我們選擇需要添加的項(xiàng)目,統(tǒng)計(jì)類型我們關(guān)注的是狀態(tài),選擇Status,第三個(gè)選項(xiàng)是已經(jīng)解決的問題是不是要統(tǒng)計(jì)出來,之后點(diǎn)擊Save,則將Project Statistics這個(gè)portlet加入到了left column,我們要讓它顯示在右邊,選中它點(diǎn)擊向右箭頭按鈕即可。 然后回到首頁,我們可以看到如下的效果:
Portlet有很多選項(xiàng),我認(rèn)為最有用的應(yīng)該是Show Saved Filter,你可以首先定制好自己的Filter,然后把它加入到首頁中,這樣自己關(guān)注的issues就可以一目了然的看到了。 注: JIRA管理員通過同樣的方法來設(shè)置Default Dashboard,操作入口是:ADMINISTRATION-Default Dashboard 4.5 定制Navigator Columns 點(diǎn)擊某個(gè)Filter進(jìn)行issue查詢,查詢列表中的顯示字段可以進(jìn)行定制,可供的選項(xiàng)有:增加字段、減少字段、編排字段先后順序。JIRA默認(rèn)的字段包括: T,Key,Summary,Assignee,Reporter,Pr,Status,Res,Created,Updated,Due ,其中T是issue type, Pr是Priority, Due是Due date。默認(rèn)的排序是按照Key倒序排列。 通過列表上方的Configure鏈接來進(jìn)行定制,如下圖: 進(jìn)入后的界面如下圖:
注: JIRA管理員通過同樣的方法來設(shè)置Navigator Columns,操作入口是:ADMINISTRATION-Navigator Columns
4.6 導(dǎo)出、打印Issues JIRA在列表和明細(xì)界面提供了導(dǎo)出Word、導(dǎo)出Excel、打印頁面的功能 1. 列表操作
在查詢列表頁面中如上圖提供了一系列的操作,其中 Printable鏈接提供一個(gè)便于打印的簡潔HTML頁面,如下圖
Full Content鏈接提供了一個(gè)便于打印的所有issues明細(xì)的HTML頁面,如下圖
Word鏈接可以將所有issues明細(xì)導(dǎo)出成word文檔 Excel后面的兩個(gè)鏈接:All fields導(dǎo)出所有字段為Excel,Current Fields導(dǎo)出當(dāng)前字段為Excel 2. Issue明細(xì)操作 操作鏈接在Issue Detail中,功能與明細(xì)中的Word和Printable鏈接是一樣的,如下圖:
4.7 制作報(bào)表 報(bào)表制作通過BROWSE PROJECT界面中的Report下的Single Level Group By Report鏈接進(jìn)入,如下圖:
進(jìn)入制作報(bào)表界面后,可以選擇不同的Filter和不同的統(tǒng)計(jì)類型進(jìn)行報(bào)表顯示,如下圖:
制作完的報(bào)表如下圖所示:
5 讓你的JIRA更專業(yè)(For Administrator) 5.1 常用配置 5.1.1 Users, Groups & Roles 用戶和用戶組已經(jīng)在Quick Start中描述過。Project Role Browser中可以定制項(xiàng)目角色,JIRA提供的三種用戶角色略顯不夠,一般的項(xiàng)目包括project managers, team leaders, developers, testers,不妨按照這個(gè)思路來添加項(xiàng)目角色。項(xiàng)目角色添加好之后可以通過Permission Scheme來對角色分配不同的權(quán)限 5.1.2 Global Settings General Configuration 這個(gè)配置界面有很多項(xiàng)目可以配置,每個(gè)項(xiàng)目JIRA都有說明,需要解釋的有: 1. Base URL,這個(gè)選項(xiàng)很有必要設(shè)置正確,JIRA會(huì)對描述、comments中的Issue KEY自動(dòng)加上鏈接,如果Base URL不正確,所有的鏈接都將是錯(cuò)誤的 2. Indexing language,這個(gè)選項(xiàng)默認(rèn)是English,在Character encoding是UTF-8的情況下,indexing language是English也沒有影響,即使你在創(chuàng)建issue時(shí)使用了中文,也能建立索引 3. Default language,安裝好JIRA后第一次進(jìn)入JIRA選擇語言后可以通過這個(gè)地方來修改,正如之前說的,最好選擇成英文。 4. Options里面的選項(xiàng)沒有特別要求使用默認(rèn)設(shè)置即可 Global Permissions 這里的權(quán)限和項(xiàng)目中的權(quán)限是不同的,項(xiàng)目中的權(quán)限指的是創(chuàng)建issue、編輯issue等等,這里的權(quán)限是一些管理權(quán)限、創(chuàng)建filter的權(quán)限等與項(xiàng)目無關(guān)的權(quán)限 Look and Feel 這個(gè)地方可以打造你的JIRA的外觀,包括配色、Logo、日期格式 Mail Servers 配置郵件服務(wù)器,可以配置SMTP或者JNDI 5.1.3 Issue Settings 可以在ADMINISTRATION-Issue Settings中進(jìn)行以下項(xiàng)目的配置: Issue Types Priority Resolutions Statuses JIRA提供兩種配置:翻譯和編輯這些resolution。翻譯可以適應(yīng)多語言環(huán)境。編輯可以改變字段屬性、排序位置、默認(rèn)值、增刪字段值等。這四個(gè)字段的配置都是類似的方法,參見JIRA提供界面應(yīng)該不存在難度,以下列出配置中需要注意之處 配置Issue Types 系統(tǒng)自帶的Issue Type包括:Bug, Task, Improvement, New Feature, sub-task .如果需要增加自己的問題類型,下面的Issue Types中進(jìn)行配置。按照界面進(jìn)行添加、編輯Issue Type,沒什么特別。 但如果想刪除已經(jīng)添加好的Issue Type可能會(huì)碰到一些麻煩,當(dāng)該Issue Type下存在issue的時(shí)候是不能刪除這個(gè)Issue Type的。有兩種辦法來刪除這個(gè)Issue Type 1. 編輯相應(yīng)的Issue,將Issue Type改成其他不刪除的Issue Type。當(dāng)Issue被close之后將不能被編輯,所以這種方法存在限制。 2. 改變相應(yīng)Project的Issue Type Scheme,這個(gè)scheme必須不包含待刪除的Issue Type,在改變scheme的時(shí)候可能會(huì)報(bào)錯(cuò),如下圖所示:
這是因?yàn)椴僮饔脩魶]有權(quán)限,應(yīng)該在Project Permission中增加move issue的權(quán)限給操作用戶。之后按照向?qū)нM(jìn)行操作即可。 配置Resolutions 通過ADMINISTRATION-Issue Settings中的Resolutions進(jìn)行設(shè)置。 JIRA默認(rèn)的Resolutions包括: 1. Fixed 2. Won't Fix 3. Duplicate 4. Incomplete 5. Cannot Reproduce 基本上這五種解決辦法已經(jīng)足夠了。 注意: Resolution這個(gè)字段被JIRA默認(rèn)的幾個(gè)filter做了引用,所以千萬不要自定義一個(gè)字段也叫Resolution,同時(shí)又把系統(tǒng)自帶的Resolutions字段屏蔽!這些filter包括open issues, OUTSTANDING, filter中的條件都是Resolution為UNRESOLVED,這個(gè)UNRESOLVED的含義是Resolution字段沒有設(shè)置任何值或者Issue Status為非Resolved和非Closed,所以當(dāng)一個(gè)Issue狀態(tài)為Resolved,即使它的Resolution為Won’t Fix,它也不會(huì)出現(xiàn)在open issues里面,即無法解決也是一種解決辦法… 配置Priority Priority的顏色、圖標(biāo)都是可以修改的,最常用的Major級別的顏色是綠色,不妨修改為警告色黃色可以引起更多的重視 配置Statuses 這個(gè)字段是供workflow使用的一個(gè)字段,當(dāng)在做工作流配置時(shí)如果覺得狀態(tài)不夠,那在這里添加即可。狀態(tài)可以關(guān)聯(lián)Icon可以讓查看issue時(shí)更直觀,JIRA提供了17個(gè)圖標(biāo),足夠來挑選了。 5.1.4 Options & Settings 1. Send E-mail 可以通過這個(gè)功能給某個(gè)用戶組或者某個(gè)項(xiàng)目的特定項(xiàng)目角色發(fā)送Email 2. Announcement Banner 這個(gè)地方可以設(shè)置一個(gè)橫幅在JIRA菜單欄下面,可以寫上重要的使用說明、通知等等,支持HTML 5.2 自定義工作流 配置工作流之前請先定好Issue有哪些狀態(tài),狀態(tài)的配置見常用配置--Issue Settings部分。 工作流配置從ADMINISTRATION-General Settings-Workflows進(jìn)入,系統(tǒng)默認(rèn)有一個(gè)叫做jira的工作流,這個(gè)工作流是只讀的不能修改。但是可以以此為藍(lán)本來建立工作流,通過Operations中Copy鏈接即復(fù)制了一個(gè)一樣的工作流。點(diǎn)擊Operations--steps進(jìn)入步驟的設(shè)置,進(jìn)入的界面如下圖所示:
從圖中看Open step,Linked Status表示執(zhí)行完這個(gè)step后,issue的狀態(tài)會(huì)變成Open,Transitions表示對于Open狀態(tài)的issue可以執(zhí)行的操作,Operations是設(shè)置時(shí)用到的鏈接。 下面以幾個(gè)例子來說明如何配置工作流: 1. 我們認(rèn)為Open狀態(tài)的issue不能有Resolve Issue這個(gè)Transition,所以準(zhǔn)備把它刪除,點(diǎn)擊Delete Transitions,之后在多選框中選擇Resolve Issue,刪除即可。 2. 對于Open狀態(tài)的issues,Start Progress這個(gè)操作我們想控制它的權(quán)限,只有開發(fā)人員才能執(zhí)行這個(gè)操作。通過點(diǎn)擊Start Progress這個(gè)鏈接進(jìn)入設(shè)置,我們看到在Conditions這個(gè)Tab中已經(jīng)存在一個(gè)條件,含義是“只有assignee才能執(zhí)行這個(gè)操作”,這個(gè)condition是合理的,保留。
我們通過點(diǎn)擊Add鏈接來增加另外一個(gè)condition,之后會(huì)得到一個(gè)列表來選擇condition的類型,開發(fā)人員才能執(zhí)行同Project role比較接近,選擇User is in Project Role。其實(shí)選擇User is in group 然后配置一個(gè)開發(fā)人員組也是可以達(dá)到同樣的效果。
在下一屏中選擇Developers這個(gè)Project Role,添加完我們可以看到如下圖所示的Conditions
JIRA默認(rèn)將增加的condition用AND來連接,如果需要也可以將條件用OR來連接。 熟悉以上操作后,通過Add New Step,調(diào)整每個(gè)step關(guān)聯(lián)的status就可以實(shí)現(xiàn)復(fù)雜的自定義工作流。 工作流定義好之后,還需要定義workflow scheme,這個(gè)工作流才能被項(xiàng)目引用。通過ADMINISTRATION-Schemes-Workflow Schemes進(jìn)入配置界面,先增加一個(gè)scheme,然后在Operations中的Workflows鏈接中關(guān)聯(lián)workflow。JIRA在workflow之外再包裝一層scheme的意義在于可以針對不同的issue type使用不同的工作流,如下圖。
為了簡潔起見,我們一般選擇All unassigned Issue Types對應(yīng)一個(gè)工作流。 定義好workflow scheme之后才能被特定的Project所使用,通過ADMINISTRATION—Projects,選擇需要配置的Project進(jìn)行配置,如下圖:
在Workflow Scheme中點(diǎn)擊Select進(jìn)行scheme的選擇。在Associate的時(shí)候會(huì)得到一個(gè)警告:
針對已經(jīng)存在issues的project,修改工作流可能會(huì)引起狀態(tài)等信息的丟失,所以最好先做好JIRA數(shù)據(jù)的備份以免發(fā)生意外。(我修改過1000個(gè)issues的project的工作流,JIRA可以很好的處理,不用因?yàn)橛芯娑o張,不過事先備份是必須的操作) 另外Project配置界面有很多scheme可配置,方法是類似的,后面不再詳細(xì)描述??梢耘渲玫膕cheme包括: Issue Type Scheme Notification Scheme Permission Scheme Issue Security Scheme Field Configuration Scheme Issue Type Screen Scheme Workflow Scheme 5.3 自定義權(quán)限 JIRA中的權(quán)限包括兩部分:Global Permission和Project Permission,前者已經(jīng)描述,配置也相對簡單。本節(jié)描述的是后者。 通過ADMINISTRATION—Schemes—Permission Schemes進(jìn)入配置。系統(tǒng)定義了一個(gè)Default Permission Scheme,并且這個(gè)scheme中的權(quán)限是可以直接進(jìn)行修改的,點(diǎn)擊Operations—permissions進(jìn)行修改。JIRA將權(quán)限分細(xì)項(xiàng)列表在配置界面中,通過Operations中Add鏈接或者頁面上方的Grant Permission進(jìn)行權(quán)限增加,通過Delete鏈接刪除賦予給特定對象的權(quán)限。 5.4 自定義字段 通過ADMINISTRATION—Issue Fields—Custom Fields進(jìn)行配置,點(diǎn)擊Add Custom Field進(jìn)行字段添加,再下一步是選擇字段的類型,常見的字符型、數(shù)字型、日期型、下拉框、雙重下拉框、多選框、單選按鈕等等JIRA都支持。 我們選擇Text Field (< 255 characters)做個(gè)測試,之后天上字段名稱、字段描述。Search Template表示該字段使用的搜索類型,如果選擇None,這個(gè)字段將不會(huì)出現(xiàn)在Find Issues里面的查詢條件中,即對該字段將不能進(jìn)行查詢。后面還有兩個(gè)選項(xiàng):issue types,projects,目的是讓這個(gè)自定義的字段出現(xiàn)在特定的issue type和特定的項(xiàng)目中。點(diǎn)擊Finish之后會(huì)得到如下屏幕:
這個(gè)設(shè)置屏幕是將添加好的自定義字段加入到特定的界面中,選擇需要顯示該字段的界面點(diǎn)擊update即可完成設(shè)置。設(shè)置完得到如下界面:
Configure鏈接可以進(jìn)行issue types, projects設(shè)置,Edit可以進(jìn)行字段名稱和search template修改,Screens可以對字段出現(xiàn)的界面進(jìn)行配置。 注意: 1. 定義好的字段是不能修改字段類型的! 2. Text Field類型存在一個(gè)Bug,如果對該字段填值都是數(shù)字,比如輸入300,之后通過Filter來搜索issue將會(huì)失敗,但是如果輸入L300, 然后通過L300來搜索是可以搜索到相應(yīng)issue。 5.5 自定義界面(Screen) 通過ADMINISTRATION—Issue Fields—Screens進(jìn)行配置,系統(tǒng)自帶有三個(gè)Screen,通過Operations中的Configure可以進(jìn)入配置界面,在這個(gè)界面中可以進(jìn)行字段的增刪、字段順序的排列。 5.6 自定義事件通知 通過ADMINISTRATION—Schemes—Notification Schemes進(jìn)行配置,系統(tǒng)默認(rèn)的通知策略是當(dāng)任意事件發(fā)生時(shí)都會(huì)通知Reporter、Assignee和Watchers。 5.7 和代碼庫(SVN,CVS)關(guān)聯(lián) 在測試過程中tester提交了一個(gè)bug,developer解決了這個(gè)bug,同時(shí)提交了幾個(gè)java類,如果你想看到針對這個(gè)bug項(xiàng)目里面的代碼做了哪些修改,jira-subversion plugin就發(fā)揮作用了。安裝好subversion plugin之后,只需要developer在做svn commit的時(shí)候在comments里面寫上jira id,在jira的subversion tab里面就會(huì)顯示這個(gè)comments和這次提交的文件。
注: 目前最新的atlassian-jira-subversion-plugin-0.10.3 不支持svn 1.5,不過通過升級svnkit到1.1.8以上版本就能解決這個(gè)問題 5.8 和Fisheye關(guān)聯(lián) 而jira fisheye plugin則是將fisheye的功能集成到j(luò)ira中,同時(shí)也是隨jira id來顯示版本的變更記錄:
Fisheye plugin配置時(shí),記得在fisheye管理界面中把Remote API設(shè)置成ON,要不然plugin連不上fisheye的! 5.9 Sub-tasks 通過Global Settings—Sub-tasks來開通這個(gè)功能 5.10 Time tracking 通過Global Settings—Sub-tasks來開通這個(gè)功能,其中對一周幾天,一天幾個(gè)小時(shí)需要先定義好。
JIRA的網(wǎng)站也有一個(gè)描述:Project Management Tool,用JIRA實(shí)現(xiàn)項(xiàng)目管理最重要的是開通Time tracking功能。 Activate Time tracking功能之后在創(chuàng)建issue時(shí)多了一個(gè)字段:
這個(gè)字段的含義是預(yù)估完成這個(gè)任務(wù)所需要的時(shí)間。 同時(shí)在處理issue時(shí),多了一個(gè)操作:Worklog,如下圖所示
點(diǎn)擊其中的Log work done進(jìn)行工作日志的記錄:
記錄之后在issue detail界面的work log Tab可以看到記錄:
開通Time Tracking之后,JIRA還提供了一個(gè)Time Tracking Report
報(bào)表如下圖所示:
JIRA完全以時(shí)間來確定工作的進(jìn)度,這種算法還得好好適應(yīng)一下。 5.11 備份、導(dǎo)入導(dǎo)出 備份通過Import & Export-- Backup Data to XML來操作,導(dǎo)出路徑寫服務(wù)器上的絕對路徑,Backup As Zip這個(gè)復(fù)選框選上則會(huì)將XML文件壓縮成一個(gè)zip包。 導(dǎo)入則通過Restore Data from XML來操作,導(dǎo)入的文件可以是XML,也可以是zip。 JIRA的導(dǎo)入導(dǎo)出都是基于XML格式,與數(shù)據(jù)庫平臺(tái)無關(guān),這也十分方便系統(tǒng)遷移。 同時(shí)JIRA還提供了定時(shí)的備份機(jī)制,通過ADMINISTRATION—System—Services可以看到這個(gè)后臺(tái)的服務(wù):
JIRA默認(rèn)會(huì)在每12個(gè)小時(shí)進(jìn)行系統(tǒng)備份一次,其數(shù)據(jù)安全還是很有保障的。 5.12 系統(tǒng)優(yōu)化 1. NT 服務(wù)修改JVM內(nèi)存大小 修改%JIRA_HOME%/bin/service.bat文件中的: "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 256 --JvmMx 512 --Startup auto 其中-JvmMs是最小內(nèi)存數(shù),-JvmMx是最大內(nèi)存數(shù),一般最小256,最大512足夠了。修改完后執(zhí)行 service.bat remove 將原有的NT 服務(wù)刪除(如果JIRA服務(wù)處于啟動(dòng)狀態(tài)先停止服務(wù)) service.bat install 安裝新的NT服務(wù) 啟動(dòng)新的服務(wù)即生效了 2. 非NT服務(wù)修改JVM內(nèi)存大小 修改%JIRA_HOME%/bin下面的setenv.bat文件,修改JAVA_OPTS這個(gè)環(huán)境變量 set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true 其中-Xms256m表示最小內(nèi)存,-Xmx512m表示最大內(nèi)存 3. 讓JVM進(jìn)行g(shù)arbage collection 如果在使用JIRA時(shí)感到打開頁面明顯變慢,可能的原因是JVM內(nèi)存吃緊,可以考慮進(jìn)行手動(dòng)garbage collection,操作如下 進(jìn)入Administration-System Info,在Java VM Memory Statistics這欄可以看到如下圖所示信息:
如果Memory Graph中顯示20% Free,甚至更低,點(diǎn)擊右邊的Force garbage collection后你會(huì)得到更到free的內(nèi)存,一般來說之后打開頁面會(huì)變快一些。 6 JIRA需要改進(jìn)的地方 1. 上傳附件時(shí)可以填一個(gè)comment,但是這個(gè)comment和普通的comment是沒有任何區(qū)別的,它并不會(huì)和你上傳的這個(gè)附件進(jìn)行關(guān)聯(lián)。當(dāng)你想對這個(gè)附件加一些描述的時(shí)候,你只能在comment里面指明附件名稱,這樣才能手工關(guān)聯(lián)附件和comment。 2. Redmine的Calendar是一個(gè)非常不錯(cuò)的設(shè)計(jì),將每一天的工作可以一目了然的區(qū)分開來,雖然在JIRA中也可以通過filter來實(shí)現(xiàn),但還是不夠直觀,redmine的calendar樣子見圖:
當(dāng)然這個(gè)calendar結(jié)合到JIRA中可以好好改善改善,比如加上My Calendar只顯示自己的活動(dòng),特定Group的Calendar,特定Project的Calendar等等。 3. 關(guān)于comments在Redmine中有一個(gè)reply的功能,這個(gè)功能也是個(gè)不錯(cuò)的設(shè)計(jì),JIRA中的comments是沒有關(guān)聯(lián)的,只能通過自己通過其中的含義來關(guān)聯(lián),不過一般來說這也足夠了。 4. 在work log中可以加上一個(gè)如TodoList中% complete字段,當(dāng)問題的% complete達(dá)到100%時(shí)才算完成,而不是時(shí)間達(dá)到estimate的時(shí)間才算完成,其實(shí)JIRA的time tracking計(jì)算任務(wù)的進(jìn)度算法真是太沒道理了,需要大大的改進(jìn)。
|