本文转自 Bruceweien 51CTO博客,原文链接:

http://blog.51cto.com/bruceweien/1932395

1、开启Jelly Runner功能,点击administrator,进入管理员配置界面,依次选择system-advanced-Jelly Runner我们会看到以下英文提示As a security precaution, the Jelly Runner on this installation is currently disabled. To enable Jelly support, please start JIRA with "-Djira.jelly.on=true". For more information see the Jelly Documentation.看到这些则代表功能还没有开启。

2、在jira目录/bin下看有没有setenv.sh文件,有则打开在JVM_REQUIRED_ARGS="-Djava.awt.headless=true这个后面添加-Djira.jelly.on=true并保存,服务器是windows时则添加java -Djira.jelly.on=true

3、自定义邮件模板,进入/usr/local/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes目录,打开email-template-id-mappings.xml文件按照里面的格式添加一个新的模板如下图:

1.jpg?version=1&modificationDate=1395366

图上id=17的则是我们刚添加的模板,name可以随便命名,template中间是模板文件名称,templatetype则是issueevent,修改完并保存。

4、 进入/usr/local/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes目录,打开velocity.properties文件,设置class.resource.loader.cache=false再将#velocimacro.library.autoreload=true的#号去掉

5、 创建模板文件进入atlassian-jira/WEB-INF/classes/templates/email/subject,把issuecreated.vm这个文件复制一份,名字叫issueovertime.vm,这个就是图一上我们定义的xml文件名称

6、 进入/atlassian-jira/WEB-INF/classes/templates/email/html,同样复制把issuecreated.vm这个文件复制一份,名字叫issueovertime.vm

7、 重启jira

8、 检查Jelly Runner功能是否开启,如果开启了会看到下面图这样的

2.jpg?version=1&modificationDate=1395366

9、建立JQL搜索问题过滤器,点击issue-我的issue-新建-advanced输入以下查询语句,然后点击search,没有报错的话就点击左边的保存按钮。

project = 项目名称 and status = "open"AND updated <= -30m and updated >= startOfDay("8h") and updated <= startOfDay("20h")这语句意思为在项目名称下搜索在8点到20点之间的超过30分钟未更新的open状态的问题,然后保存查看这个过滤器的id,查看过滤器id方法为鼠标移动到那过滤器,浏览器网址有显示id号,需使用ie浏览器.

10、建立一个新的事件,进入管理员页面-system-Advanced-events-Add New Event事件名称随便定义,比如问题超时未更新提醒,Template选择Issue OverTime

11、建立工作流动作,进入要使用规则的工作流,比如系统运维这个项目使用的是yunat default(customized)这个工作流,那我们就在这里面建立工作流动作。点击问题- workflows找到yunat default(customized)点击工作流右边的steps,比如我想当issue处于ln Progress这个状态时执行新的动作,则在这下面建立新动作,点击Add Transition,动作名称可以与第10建立的事件名称一样,Destination Step选择ln Progress,其他的默认就行了,增加完在给这个动作设置权限,主要是为了防止别人去点击这个按钮。

12、新建jellyrunner脚本文件,进入/usr/local/atlassian-jira-4.4.5-standalone/home/data/目录建立jellyrunnerovertime.xml文件和jellyrunnerovertime.log文件,在jellyrunnerovertime.xml内添加如下内容:

<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log" >

<jira:Login username="管理员" password="管理员密码">

<log:warn>Running Inactivate issues service</log:warn>

<core:set var="comment"></core:set>

<core:set var="workflowStep" value="问题超时未更新提醒" />

<core:set var="workflowUser" value="system" />

<!-- Run the SearchRequestFilter -->

<jira:RunSearchRequest filterid="11530" var="issues" />

<core:forEach var="issue" items="${issues}">

<log:warn>Inactivating issue ${issue.key}</log:warn>

<jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}"/>

</core:forEach>

</jira:Login>

</JiraJelly>

上面的管理员也可以填写其他有权限的管理员用户,问题超时未更新提醒是动作名称,11530是第9步建立的过滤器的id

13、 添加一个系统服务,点击system-advanced-services,名称比如为IssueOverTimeRemindUser,Class选择Run Jelly script(com.atlassian.jira.jelly.service.JellyService),Delay选择1,这里的1表示多久执行一次此服务,我们这里设置为1表示1分钟,添加服务后,在服务里找到该服务,点击编辑在Input File输入步骤12的脚本文件的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.xml,Output File输入步骤12的脚本日志的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.log

输出文件设置为:步骤12的日志文件的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.log

14、 设置邮件格式为html的,因为我们设置的是邮件模板是html格式的,点击system-mail-Send Email-Message Type-html

15、 重建索引,system-Indexing-Relndex

16、 使用jellyrunnerovertime.xml里面设置的管理员用户收藏步骤9建立的过滤器,收藏点击过滤器左边的星号颜色变成黄色后即可。

17、 添加邮件接收者,问题-Notification Schemes-Default Notification Scheme-问题超时未更新提醒(这里的问题超时未更新提醒事件是我们在步骤10建立的)-增加-选择需要通知的人和组或者项目。

18、 现在可以进行测试了,整个自动执行过程原理如下:

JIRA每隔1分钟执行下jellyrunnerovertime.xml这个脚本,即每隔1分钟用过滤器11530搜出满足条件的问题,再用管理员这个账户登录并执行下这些问题的“问题超时未更新提醒”动作。这个动作会触发“问题超时未更新提醒”事件。同时该事件又会根据通知方案里的配置来通知相关人员。

19、 如果要更改状态,请在工作流中相应的状态下增加“问题超时未更新提醒”动作,然后在过滤中也修改下状态。

20、 如果要修改邮件模板标题请进入步骤5中的issueovertime.vm文件输入你想要显示的文字,比如你的issue超时了。如果要修改邮件模板内容,请进入步骤6中的issueovertime.vm文件,比如你要在提醒邮件中显示“issue状态“项目,可以按照里面的格式添加#parse("templates/email/html/includes/fields/status.vm")

比如你要在邮件中显示自定义内容,可以这样输入

<td id="email-fields" style="padding:0 32px 32px 32px;">

<p style=’margin-bottom:10px;’>自定义内容</p>

<table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">

jira邮件自动提醒功能配置相关推荐

  1. java实现未读消息提醒_JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】...

    本文实例讲述了JS(jQuery)实现聊天接收到消息语言自动提醒功能.分享给大家供大家参考,具体如下: 综述 最近在开发一个网页端的客服系统,需求要求聊天双方接收到消息能有语音提醒,并且客服端如果存在 ...

  2. android win10 日历提醒,win10系统怎么设置日历自动提醒功能

    在 1.点击桌面右下角的[日期时间]: 2.接着在弹出的[日历]程序紧贴屏幕右边框打开,在展开的日历中,点击[+]按钮: 2.此外我们还可以通过点击桌面左下角的[开始]按钮,在展开的程序列表中,找到并 ...

  3. webpack自动打包功能配置

    当我们在js中修改后,在浏览器打开html文件并没有任何变化,这是因为引入的js文件是之前打包的js文件,如果要实现修改后的js有变化,需要在重新打包一次,这样就大大的增加了我们的工作量,所以这儿就用 ...

  4. 在信息泄露事件后 雅虎关闭邮件自动转发功能

    10月11日消息 据国外媒体报道,本月初雅虎已暂时禁用电子邮件自动转发功能,过去已设置自动转发功能的邮箱用户并不会受到影响,雅虎此举被认为是防止用户的迁移. 在雅虎最近被爆出用户账户遭黑客窃取和数据监 ...

  5. 为Office365增加密码过期自动提醒功能

    最近有人和我反应,无法查看所有员工的Office365的密码过期时间.最好可以批量查看,如果能在过期前几天发个提醒邮件就更好了. $pw = ConvertTo-SecureString 'your_ ...

  6. python实现秒杀商品的微信自动提醒功能(附代码)

    技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒 1.收集自己想要的商品url 我们就以京东来举例,获取京东的秒杀商品信息: 首先,我们在网页上打开京东,搜索我们想要的商品,这边我就以我 ...

  7. java 邮件提醒功能_利用ical4j和javamail发送会议邀请实现邮件发送提醒功能

    /*** *@paramsenderAccount 发件人账号 *@paramsenderPassword 发件人密码 *@paramtoAddress 收件人邮箱地址 *@paramccAddres ...

  8. python股票交易微信提醒_python实现秒杀商品的微信自动提醒功能(附代码)

    技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒 工具:需要两个微信号,这两个微信号互为好友 如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的 ...

  9. TC校园邮箱禁止掉邮件自动转发功能

    1.打开设置--邮箱设置: 2.选择自动转发,这里设置禁止转发: 3.如果启用,自己填写对应邮箱: 如果不想转发,就选择禁止,然后保存更改.

最新文章

  1. 周炯槃 信息理论基础
  2. man iptables by iptables-save v1.3.5
  3. 故障码123401_电力系统规划设计对电力工程设计的应用
  4. 用C++实现十进制转二进制【个人思想】
  5. 最实用的18个HTML5 API 教程大全,都在这里了
  6. MyEclipse IDEA 安装 激活JRebel工具
  7. python 时间相关模块
  8. java计算机毕业设计仓库管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
  9. springboot中websocket服务怎么调用其他类的方法
  10. [生而为人-思考] Knowledge Cooking -5th 分享会记录
  11. 用Python 制作身高预测系统
  12. 如何降低APP运营成本?
  13. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读
  14. 云服务 IaaS、PaaS、SaaS
  15. 从HTTP状态 301,302,200 来看页面跳转
  16. (ICRA 2020) Instance Segmentation of LiDAR Point Clouds
  17. iOS 拦截系统自带的Pop事件
  18. TouchImageView源码分析
  19. Dimensioning of Cables
  20. 基于深度摄像头的yolov4算法应用 (Realsense D435i)python

热门文章

  1. python写入文件自动换行问题
  2. 【Spark】WordCount的多种实现方式
  3. vivo携手《中国好声音》:音乐营销或迎强IP时代
  4. mysql使用group_concat()连接构造json对象数组时长度受限
  5. LED闪灯IC 快闪慢闪亮灭闪灯IC SOT23-6单键闪灯IC 闪灯IC
  6. 【go共识算法】-Raft
  7. Alien Skin ExposureX8最新ps中文版调色滤镜插件
  8. 非常好用的java代码检测工具
  9. vue鼠标停留在表格table2秒后,显示悬浮快(计算模块)
  10. LDA 与 PLSA对比