Jira开发实践、ScriptRunner插件开发总结
Jira简介
JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。同时,开源则是其另一特色,在用户购买其软件的同时,也就将源代码也购置进来,方便做二次开发。JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。
自定义工作流
打开Jira管理,问题,可以自定义工作流流程
以及定义界面、字段等,可以自己新增界面和字段,并配置界面显示哪些字段
自定义工作流中可以新增流程校验、和操作人限定等
插件开发
ScriptRunner主要使用该插件进行一些相关定制开发,语言使用的是Groovy语言,该语言语法与Java类似,并且兼容java
编程过程中有几个常用类和方法
customFieldManager 自定义字段管理器
可以通过该类获取自定义字段
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def field = customFieldManager.getCustomFieldObjectByName("字段名称")
//获取值
def fieldValue = field.getValue();
Listeners中获取子问题、父问题
// 初始化
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()
// 变更事件管理
def changeHistoryManager= ComponentAccessor.getChangeHistoryManager()
//操作用户
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
//获取当前问题
def issue = event.getIssue()
//获取该问题的父级任务
def parentIssue = issue.parentObject//获取相关字段
def customField = customFieldManager.getCustomFieldObjectByName("字段A")//获取值
def parentValue = mutableParentIssue.getCustomFieldValue(customField)
//父任务获取子任务数组def subtasks = mutableParentIssue.getSubTaskObjects()for(subtask in subtasks){//可以循环数组,进行操作}
// 更新父问题的字段内容
mutableParentIssue.setCustomFieldValue(customField, Double.valueOf(customFieldValue)) // 问题更新issueManager.updateIssue(user, mutableParentIssue, EventDispatchOption.DO_NOT_DISPATCH, false)
Behaviour常用
主要设置字段隐藏,必读,必填等,如果一个字段针对不同的项目有不同的效果,可以通过mapping设置
// 获取子任务的字段
def cf = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("字段名称")
// 获取字段
def af = getFieldByName("字段A")
// 设置必填
af.setRequired(true)
// 设置只读
af.setReadOnly(true)
//设置隐藏
af.setHidden(true)
// 设置显示提示文字
af.setHelpText("该字段不可变编辑")
相关的Api接口文档可以参考:
https://docs.atlassian.com/software/jira/docs/api/7.1.0/com/atlassian/jira/issue/managers/package-summary.html
Jira开发实践、ScriptRunner插件开发总结相关推荐
- 王继伟-国产UMLMDA工具开发实践-UMLChina讲座-音频和幻灯
时间 2005年4月18日(周一)下午18:30-20:30 演讲人 王继伟,1976年生.楚凡科技技术总监.负责Trufun所有产品的研发,他领导下的团队开发了UML/MDA工具Plato & ...
- 为什么您应该使用基于标准的开发实践
为什么您应该使用基于标准的开发实践 Why you should use standards-based development practices (even if you don't have t ...
- [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum
[敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...
- 华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...
自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新.市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争 ...
- 《JavaScript设计模式与开发实践》模式篇(12)—— 装饰者模式
在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活, 还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之 改变;另一方面,继承这种功能复 ...
- 转:MySQL 开发实践 8 问,你能 hold 住几个?
来源:腾云阁 - 田京昆 链接:www.qcloud.com/community/article/233 最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答 ...
- Angular开发实践(一):环境准备及框架搭建
引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架.前后端分离.前端工程化.SPA优化等等.因此想通过Angular开发实践这系 ...
- 敏捷软件开发实践——估算与计划02
目录 一.使用故事点估算大小 1.故事点是相对的 2.速度 3.小结 二.使用理想人天进行估算 1.理想时间和软件开发 2.以理想人天作为对大小的度量 3.给出一个而不是多个估算值 4.小结 三.估算 ...
- 敏捷软件开发实践——估算与计划(01)
目录 一.计划的目的 1.为什么要进行估算和计划 2.优秀的计划是什么 3.敏捷计划是什么 4.小结 二.计划失败的原因 1.基于活动而不是基于特性进行计划 1.1.活动不会提前完成 1.2.延误沿着 ...
最新文章
- 机器学习性能优化全解
- ICCV 2019 论文解读 | 基于层次解析的Image Captioning
- js读取div从html中导入,在html中div+css布局的简单应用...-js+div+css下拉导航菜单完整代...-CSS文件的条件导入 - Gene Li_169IT.COM...
- Mysql(2)——mysql的配置文件信息(基本信息)
- 数据湖之iceberg系列(一)iceberg能做什么
- IE图标消失 HTML文件图标变为未知图标的解决方法
- 用js实现分页功能以及利用xml实现分页功能——数据岛
- excel oledb mysql_C#实战023:OleDb操作-Excel数据写入
- 操作Visual Studio 2010中的SQL Server数据库比较工具
- mysql的时间类型的比较
- 计算机组成原理奉远祯,计算机组成原理笔记.doc
- 中国各省GDP数据集(1949年-2020年)
- 神经派考古学 - 推荐一个blog
- shell脚本中 EOF的意思
- word邮件合并,批量插入图片,批量修改文件名字
- CF Canada Cup 2016 D 优先队列
- 如何整理碎片化的知识?
- Dell OptiPlex 7040拆机组装全记录
- 线性常系数齐次递推关系与特征多项式
- 丝印印唛颜色实在、立体感强