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插件开发总结相关推荐

  1. 王继伟-国产UMLMDA工具开发实践-UMLChina讲座-音频和幻灯

    时间 2005年4月18日(周一)下午18:30-20:30 演讲人 王继伟,1976年生.楚凡科技技术总监.负责Trufun所有产品的研发,他领导下的团队开发了UML/MDA工具Plato & ...

  2. 为什么您应该使用基于标准的开发实践

    为什么您应该使用基于标准的开发实践 Why you should use standards-based development practices (even if you don't have t ...

  3. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  4. 华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...

    自今年疫情以来,AI 技术加速进入了人们的视线,在抗疫过程中发挥了重要作用,产业发展明显提速,我国逐步走出了一条由需求导向引领商业模式创新.市场应用倒逼基础理论和关键技术创新的发展道路,AI 人才的争 ...

  5. 《JavaScript设计模式与开发实践》模式篇(12)—— 装饰者模式

    在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活, 还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之 改变;另一方面,继承这种功能复 ...

  6. 转:MySQL 开发实践 8 问,你能 hold 住几个?

    来源:腾云阁 - 田京昆 链接:www.qcloud.com/community/article/233 最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答 ...

  7. Angular开发实践(一):环境准备及框架搭建

    引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架.前后端分离.前端工程化.SPA优化等等.因此想通过Angular开发实践这系 ...

  8. 敏捷软件开发实践——估算与计划02

    目录 一.使用故事点估算大小 1.故事点是相对的 2.速度 3.小结 二.使用理想人天进行估算 1.理想时间和软件开发 2.以理想人天作为对大小的度量 3.给出一个而不是多个估算值 4.小结 三.估算 ...

  9. 敏捷软件开发实践——估算与计划(01)

    目录 一.计划的目的 1.为什么要进行估算和计划 2.优秀的计划是什么 3.敏捷计划是什么 4.小结 二.计划失败的原因 1.基于活动而不是基于特性进行计划 1.1.活动不会提前完成 1.2.延误沿着 ...

最新文章

  1. 机器学习性能优化全解
  2. ICCV 2019 论文解读 | 基于层次解析的Image Captioning
  3. js读取div从html中导入,在html中div+css布局的简单应用...-js+div+css下拉导航菜单完整代...-CSS文件的条件导入 - Gene Li_169IT.COM...
  4. Mysql(2)——mysql的配置文件信息(基本信息)
  5. 数据湖之iceberg系列(一)iceberg能做什么
  6. IE图标消失 HTML文件图标变为未知图标的解决方法
  7. 用js实现分页功能以及利用xml实现分页功能——数据岛
  8. excel oledb mysql_C#实战023:OleDb操作-Excel数据写入
  9. 操作Visual Studio 2010中的SQL Server数据库比较工具
  10. mysql的时间类型的比较
  11. 计算机组成原理奉远祯,计算机组成原理笔记.doc
  12. 中国各省GDP数据集(1949年-2020年)
  13. 神经派考古学 - 推荐一个blog
  14. shell脚本中 EOF的意思
  15. word邮件合并,批量插入图片,批量修改文件名字
  16. CF Canada Cup 2016 D 优先队列
  17. 如何整理碎片化的知识?
  18. Dell OptiPlex 7040拆机组装全记录
  19. 线性常系数齐次递推关系与特征多项式
  20. 丝印印唛颜色实在、立体感强

热门文章

  1. 银行信用卡客户价值分析(Python数据分析)
  2. 360cdn能挡住cc攻击_又被CC攻击弄得心有余悸?莫怕!这里教你如何防御
  3. 什么是大数据和大数据平台?
  4. win10 语言栏跳出来,如何调回去
  5. Word一部分内容分为两栏或多栏的方法
  6. 从fasta文件中筛选序列并输出
  7. 如何给Mac OS 更新到指定版本系统
  8. 统一社会信用代码=营业执照注册号 + 营业执照注册号+营业执照注册号
  9. 又猎一“狐”:一名外逃越南嫌疑人落网啦
  10. js判断wifi_js判断手机是wifi还是流量