如何在自定义发行说明模板中获取JIRA问题的注释

如何在自定义发行说明模板中获取JIRA问题的注释,jira,Jira,今天,在运行4.2.4版之前,我们将jira升级到了5.0.5版。在该版本中,我们制作了一个自定义的发行说明模板,该模板还将显示对某个问题的所有评论。为此,我们必须能够获得一个CommentManager对象。我们是这样做的: #foreach ($issue in $issueType.issues) #if($issueType.issues.size() > 0) #set ($comments = $action.ComponentManager.CommentManage

今天,在运行4.2.4版之前,我们将jira升级到了5.0.5版。在该版本中,我们制作了一个自定义的发行说明模板,该模板还将显示对某个问题的所有评论。为此,我们必须能够获得一个
CommentManager
对象。我们是这样做的:

#foreach ($issue in $issueType.issues)
#if($issueType.issues.size() > 0)
    #set ($comments = $action.ComponentManager.CommentManager.getComments($issue))
    #if ($comments) 
       #foreach ($comment in $comments)
...

这在JIRA 4.2.4中运行良好,但在JIRA 5.0.5中不再运行,是否有人知道在JIRA 5.0.5中创建自定义发行说明模板时如何再次获取CommentManager对象,或者如何以其他方式获取CommentManager对象,例如,在不使用
$action
的情况下?

JiraWebActionSupport具有以下不推荐的方法,该方法提供了component manager对象


@不赞成
公共组件管理器getComponentManager()
{
返回ComponentManager.getInstance();
}

及 有一些Velocity代码,但看看5.0.1源代码,Velocity似乎不再被使用了


我想在上提交一个改进,将getCommentManager方法添加到JiraWebActionSupport.java

这是我在jira中用于获取componentmanager对象的方法,一旦拥有componentmanager对象,剩下的工作就很容易完成:

#set ($componentManagerClass = $constantsManager.getClass().getClassLoader().findClass('com.atlassian.jira.ComponentManager'))
#set ($method = $componentManagerClass.getDeclaredMethod('getInstance', null))
#set ($componentManager = $method.invoke(null, null))

我现在正在使用这个解决方案,使用constantsmanager几乎可以获得任何类型的类,这对其他人都是非常有帮助的。

在您的vm模板中,写以下内容:

#set ($componentAccessorClass        = $constantsManager.getClass().getClassLoader().findClass('com.atlassian.jira.component.ComponentAccessor'))
#set ($componentAccessorConstructor  = $componentAccessorClass.getConstructor())
#set ($componentAccessor             = $componentAccessorConstructor.newInstance())
现在,您可以访问,它可以获得您想要的任何东西,包括评论管理器

现在,您只需对组件访问器变量调用getCommentManager()

#set($commentManager = $componentAccessor.getCommentManager() ) 

希望有帮助!:)

您好,谢谢您的回答,您指向的链接是如何为发行说明中的评论添加customn字段,而不是如何获取发行说明中的问题的评论。GetComponentManager方法是我以前使用的方法,但它似乎不再有效。然而,我确实找到了另一种使用Jira5.0.5的方法,这有点偏差,但我设法得到了一个组件管理器对象,其余的都很简单。我也会发布我的答案