如何在Groovy(Jira ScriptRunner)中为Version集合批量添加-Inbox后缀
Jira版本集合优化:替代循环批量生成带后缀版本
需求说明
需要为Version集合中的每个元素名称添加后缀"-Inbox",生成新的Version集合mynewVersions,当前通过循环调用ComponentAccessor.versionManager.createVersion实现,希望用更简洁的方式替代显式循环。
优化后代码
def matchedVersions = issue.getFixVersions().intersect( newIssueproject.getVersions(), Version.NAME_COMPARATOR ) // 用Groovy集合的collect方法替代循环,直接生成目标集合 def mynewVersions = matchedVersions.collect { v -> ComponentAccessor.versionManager.createVersion( "${v.getName()}-Inbox", startDate, releaseDate, description, newIssueproject.id, scheduleAfterVersion, released ) }
优化说明
- 利用Groovy集合原生的
collect方法,自动遍历matchedVersions中的每个元素,执行闭包内的版本创建逻辑,最终直接返回包含所有新Version对象的集合,省去手动初始化ArrayList和调用add方法的步骤。 - 采用Groovy字符串插值语法
${v.getName()}-Inbox替代字符串拼接,代码更简洁易读。 - 该写法和原循环的执行逻辑完全一致(仍是逐个调用
createVersion),但代码更紧凑、符合Groovy的简洁风格,减少冗余代码量。
内容的提问来源于stack exchange,提问作者منى
相关产品推荐
相关产品推荐

