一條老狗

                     老狗拉破車
          posts - 12, comments - 11, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          大家都知道,JIRA是一個(gè)優(yōu)秀的問(wèn)題跟蹤系統(tǒng)。
          但它不一定就能完全滿足你的需要,比如導(dǎo)入Excel方式提交的BUG。
          值得慶幸的是,JIRA提供了強(qiáng)大的插件開(kāi)發(fā)功能,現(xiàn)說(shuō)一說(shuō)我的一點(diǎn)小經(jīng)驗(yàn)。

          準(zhǔn)備: JIRA3.9,  JIRA SDK,  IDEA / Eclipse, 熟悉Java(廢話),  熟悉WebWork
          資料: http://confluence.atlassian.com/display/JIRA/JIRA+Development+Hub
          官方資料可能無(wú)法全部找到你想要的,這時(shí)你可以下載一些其它第三方插件來(lái)分析其源碼。


          最重要的一點(diǎn),那就是反編譯JIRA代碼,直接查看之。
          比如,你想查看 /secure/IssueNavigator.jspa 的代碼
          打開(kāi) WEB-INF/classes/actions.xml 查找 IssueNavigator ,如下:   

          <action name="issue.IssueNavigator" alias="IssueNavigator">   
              
          <view name="success">/secure/views/navigator/navigator.jsp</view>   
              
          <view name="error">/secure/views/navigator/navigator.jsp</view>   
          </action>   

          表示其對(duì)應(yīng)的類是  com.atlassian.jira.web.action.issue.IssueNavigator 反編譯之即可。


          以下說(shuō)一說(shuō)一些常用的方法:
          JIRA提供各種 xxxManager 提口來(lái)實(shí)現(xiàn)各種操作
          你可以通過(guò) ComponentManager.getInstance().getXxx() 來(lái)得到其實(shí)例
          也可以通過(guò) ComponentManager.getComponentInstanceOfType(xxx.class) 來(lái)得到,非常方便。

          比如:

          JiraAuthenticationContext authenticationContext = ComponentManager.getInstance().getJiraAuthenticationContext();    
             
          ProjectComponentManager pcm 
          = (ProjectComponentManager)ComponentManager.getComponentInstanceOfType(ProjectComponentManager.class);   

          例子:

          public static User getCurrentUser() {        
              JiraAuthenticationContext authenticationContext 
          = ComponentManager.getInstance().getJiraAuthenticationContext();        
              
          return authenticationContext == null ? null : authenticationContext.getUser();        
          }
                  
                 
          public static Project getProject(long pid) {        
              
          return ComponentManager.getInstance().getProjectManager().getProjectObj(pid);        
          }
               
             
          public static MutableIssue getIssueById(Long id) {    
              
          try {    
                  IssueManager issueManager 
          = ComponentManager.getInstance().getIssueManager();    
                  
          return issueManager.getIssueObject(id);    
              }
           catch (Exception e) {    
                  
          return null;    
              }
              
          }
              

          把郵件加入JIRA隊(duì)列:


          Email mail = new Email(toaddr);    
              
          MailQueueItem item 
          = new SingleMailQueueItem(mail);    
          ManagerFactory.getMailQueue().addItem(item);    

          另外你可以覆蓋JIRA的Action,比如覆蓋CreateSubTaskIssueDetails
          讓其在創(chuàng)建子任務(wù)時(shí)自動(dòng)導(dǎo)入父任務(wù)的一些數(shù)據(jù)(如"所屬模塊")。


          <action name="jira.plugin.rstoolkit.webui.action.CreateSubTaskIssueDetails" alias="CreateSubTaskIssueDetails">   
              
          <view name="error">/secure/views/createsubtaskissue-details.jsp</view>   
              
          <view name="input">/secure/views/createsubtaskissue-details.jsp</view>   
              
          <view name="init">/rstoolkit/initsubtaskdetails.jsp</view>   
          </action>   

          實(shí)在不想打字,其它的一些就不一一列舉了。


          評(píng)論

          # re: JIRA插件開(kāi)發(fā)(一) [原創(chuàng)][未登錄](méi)  回復(fù)  更多評(píng)論   

          2009-10-20 11:12 by paul
          您好!看到你的jira插件開(kāi)發(fā)文章,希望能向您請(qǐng)教下問(wèn)題。我的qq:157184362

          # re: JIRA插件開(kāi)發(fā)(一) [原創(chuàng)]  回復(fù)  更多評(píng)論   

          2010-06-30 11:38 by yxyas
          jira 第二次開(kāi)發(fā),我想在原有的基礎(chǔ)上在添加一個(gè)字段怎么做???我初學(xué)jira

          # re: JIRA插件開(kāi)發(fā)(一) [原創(chuàng)]  回復(fù)  更多評(píng)論   

          2010-06-30 11:39 by yxyas
          我QQ:214156339
          想向你請(qǐng)教一下.

          # re: JIRA插件開(kāi)發(fā)(一) [原創(chuàng)][未登錄](méi)  回復(fù)  更多評(píng)論   

          2016-01-27 14:19 by Java Fans
          類似JIRA開(kāi)發(fā)的插件化開(kāi)源開(kāi)發(fā)平臺(tái)JXADF,也是相當(dāng)震撼,詳細(xì)參見(jiàn):http://osgia.com
          主站蜘蛛池模板: 许昌市| 唐河县| 措美县| 阜平县| 晋江市| 乐山市| 娄底市| 镇康县| 永州市| 商河县| 瓦房店市| 铜山县| 涡阳县| 松江区| 宜良县| 洪雅县| 福安市| 罗甸县| 乳山市| 阿勒泰市| 大田县| 龙州县| 金平| 新余市| 英德市| 吐鲁番市| 垣曲县| 余江县| 赤壁市| 且末县| 嘉义县| 迁西县| 宁国市| 盱眙县| 黔江区| 鹿邑县| 乐安县| 沁水县| 广河县| 长葛市| 洪泽县|