Jira 插件开发
来源:互联网 发布:淘宝9.9包邮网址 编辑:程序博客网 时间:2024/06/04 18:28
JIRA是一个优秀的问题(bugs,任务,改进,新功能)跟踪及管理软件。采用J2EE技术,JIRA安装简单,容易使用,功能全面,配置灵活,界面友好,可用性以及可扩展性方面都十分出色。
接下来开始,以下我本人的环境。
JDK: jdk 5.0
Jira 版本:V 3.13(是以Exe 安装模式的,当然也可以用war ,ear 等模式安装)
Tomcat : Jira 自带
开发工具:Eclipse 3.2
准备工作:
先到 https://maven.atlassian.com/maven1/jira-development-kit/distributions/
https://maven.atlassian.com/maven1/jira-development-kit/distributions/jira-development-kit-3.13.zip
下载 Jira Jar二进制开发包,搭建java 开发环境。
Jira 提供2种类型的插件开发,第一种 Report(报表),第二种是 Portlet 。今天就讲如何创建这2种插件。首先我们先来了解一下 Jira 插件的一个xml 配置文件 atlassian-plugin.xml
<atlassian-plugin (1) key="唯一主键" (2) name="插件名称">
<plugin-info>
<description>插件的简单描述</description>
<version>版本 1.0</version>
<application-version min="3.10" max="3.13"/>
<vendor name="Sky" url="http://hi.baidu.com/hth_sky"/>
</plugin-info>
(1)KEY 标识在Jira 应用当中唯一的一个主键,Jira 通过这个主键找到你相应的 Report ,Portlet
例如有一张报表名称叫: SaleReport,哪么Jira就通过 主键:SaleReport找到对应的.class去执行
(2)Name 整个插件的名称
接下来我们先讲讲报表的开发
(0) <report (1) key="SaleReport" name="Sale Report" (2) class="com.company.report.SaleReport">
<description key="report.description">i18n description</description>
<label (3) key="project.report.label" />
<resource type="velocity" (4)name="view" location="templates/report/SaleReport.vm" />
<resource type="velocity" name="excel" location="templates/report/SaleReport-Excel.vm" />
<resource (5) type="i18n" name="i18n" location="com.company.resources.report" />
<properties>
<property>(6)
<key>startDate</key>
<name>report.startdate</name>
<description>report.startdate.description</description>
(7) <type>date</type>
</property>
<property>
<key>endDate</key>
<name>report.startdate</name>
<description>report.enddate.description</description>
<type>date</type>
</property>
<property>
<key>targetUser</key>
<name>report.targetuser</name>
<description>report.targetuser.description</description>
(8) <type>user</type>
</property>
<property>
<key>targetGroup</key>
<name>group.targetgroup</name>
<description>group.targetgroup.description</description>
<type>select</type>
(9) <values class="com.company.GroupValuesGenerator"/>
</property>
</properties>
</report>
(0) 标识为这个插件为 Report
(1) 在atlassian-plugin.xml 文件内必须唯一的主键,这样才能找到相应的(2)*.class
(2) 处理业务逻辑的一个类,下面我们会详细介绍这个类的实现
(3) 在Jira 应用里面看到的报表名称,取值在*.properties文件里面取,在(5)配置properties文件
(4) 数据的显示方式,默认的方式 view 以HTML 方式查看,当然也配置excel 方式导出数据
(5) 配置该报表的资源文件,可以实现国际化
(6) 报表的查询参数
(7) 参数类型 date ,以Jira 默认的时间控件显示
(8) 参数类型 user ,以jira 默认的用户空间显示
(9) 参数类型 select,values ,class 该类返回一个Map 对象,对象存储键值对的数据以select HTML 控件显示
接下来我们讲讲com.company.report.SaleReport 的实现方式
public class SaleReport extends (1) AbstractReport {
// Generate html report
public String generateReportHtml(ProjectActionSupport action, Map params)
throws Exception {
return "view";(2)
}
// Generate excel, report
@Override
public String generateReportExcel(ProjectActionSupport action, Map params)
throws Exception {
return "excel";(4)
}
@Override(3)
public boolean isExcelViewSupported() {
return true;
}
}
(1) 继承Jira 的抽象类 AbstractReport 并且实现需要实现的方法,例如你只需要实现HTML 的哪么就实现 generateReportHtml 并且返回 "view"
(2) 以 VIEW 方式显示。
(3) 以EXCEL 方式显示,必须重写这个方法,并且 return true;
(4) 以 excel 方式显示。
哪么第一节 Report 就讲完了,至于VM 如何实现大家就等去看看 Velocity Template Language VTL http://velocity.apache.org/
接下来讲一下 Portlet 的实现方式
<portlet (1)key="PersonPortlet" name="Person Portlet"
(2)class="com.company.portlet.PersonPortlet">
<description key="portlet.description">i18n description</description>
<resource type="velocity" name="view" location="templates/portlet/portlet.vm" />
<resource type="i18n" name="i18n" location="com.company.resources.portlet" />
(3)<resource type="download" name="a" location="portlets/dashboard/thumbnails/*.png" />
<resource type="download" name="b" location="portlets/dashboard/thumbnails/*.png" />
<label key="portlet.name" />
<objectdescriptor key="portlet.display.name" />
<properties>
<property>
<key>numOfWeeks</key>
<name>portlet.numOfWeeks.label</name>
<description>portlet.numOfWeeks.description</description>
<type>long</type>
<default>1</default>
</property>
</properties>
</portlet>
在此(1),(2)跟报表完全一致,所以无需再讲,我们来看看第三点
(3) 这个是 配置portlet 的时候,简单显示的一个小图片
我们重点来看看*.class 的实现方式
public class PersonPortlet extends (1) PortletImpl{
public PersonPortlet(
JiraAuthenticationContext authenticationContext,
PermissionManager permissionManager,
ApplicationProperties applicationProperties) {
super(authenticationContext, permissionManager, applicationProperties);(2)
}
@Override
(3) protected Map getVelocityParams(PortletConfiguration portletConfiguration) {
return Map;
}
}
(1) 必需继承PortletImpl 实现类,之后重现getVelocityParams
(2) 必须实现他的构造函数
(3) 重新getVelocityParams方法
这样子Jira 插件开发就算完成了。打包程序成*.jar 放到Jira应用程序lib 下面。重新启动服务器,即可读取到你的插件。
- Jira 插件开发
- JIRA插件开发
- JIRA插件开发(二)
- jira插件开发数据库配置
- jira插件开发远程调试
- Jira插件开发中的附件上传
- atlassian JIRA 插件开发(六) — JIRA系统的插件体系,总体一瞥
- Atlassian JIRA 插件开发(一) — 环境准备
- Atlassian JIRA 插件开发(三)——常见问题
- Atlassian JIRA 插件开发(四) — 新增 webwork actions
- atlassian JIRA 插件开发(七) — 组成
- atlassian JIRA 插件开发(八) — MVC实现
- jira插件破解步骤
- 推荐JIRA图形插件JIRA Charting Plugin
- 推荐JIRA图形插件JIRA Charting Plugin
- eclipse中安装jira插件,设置jira
- Atlassian JIRA 插件开发(二) — 插件项目框架搭建
- JIRA 开发环境配置
- Oracle Advance Procurement-Oracle高级采购管理 收藏
- make的参数
- 项目经理之修炼(5)——别把项目成功当目标
- 使用SetUnhandledExceptionFilter让程序优雅的崩溃
- 侯捷的职业建议(转自阮一峰的网络日志)
- Jira 插件开发
- 使用Python处理Excel表格
- WinCE5.0/6.0下命令行实现自动编译
- JIRA插件开发(二)
- python操作excel
- 系统架构设计
- hp-unix WebLogic 安装笔记
- 毕业后五年拉开差距的原因在哪里???
- python Excel 编程