如何通过JRJC调用REST API为Jira Server设置自定义字段值?
解决JRJC创建Jira问题时设置自定义字段的问题
核心解决方案:正确设置「Application」自定义字段
要设置名为“Application”的下拉框类型自定义字段,关键是使用自定义字段的ID而非显示名称,并传入对应选项的ID。具体步骤如下:
获取自定义字段ID
登录Jira后,进入该字段的配置页面,URL中会包含类似customfield_xxxx的字段ID(比如customfield_12345),这是最可靠的字段标识,能避免名称歧义或拼写问题。编写设置字段的代码
结合你提供的选项ID(14314),修改IssueInputBuilder的代码:
Long testIssueTypeId = getTestIssueTypeId(projectKey); // 替换为你的Application字段实际ID String applicationFieldId = "customfield_12345"; // 对应选项的ID,即你提供的JSON中的"id"值 String optionId = "14314"; IssueInputBuilder builder = new IssueInputBuilder() .setProjectKey(projectKey) .setIssueTypeId(testIssueTypeId) .setSummary(summary) .setDescription(description) // 直接传入选项ID即可,JRJC会自动处理格式 .setFieldValue(applicationFieldId, optionId); IssueInput input = builder.build(); return jira.getIssueClient().createIssue(input).claim();
如果你偏好使用CustomFieldOption对象,也可以这样写:
.setFieldValue(applicationFieldId, new CustomFieldOption(14314L, null, null, null, null));
关于「Test Type」字段报错的原因
你遇到的Field 'Test Type' cannot be set错误,主要有两种可能:
- 字段标识错误:使用显示名称“Test Type”可能存在拼写、大小写或空格问题,换成该字段的
customfield_xxxxID即可避免。 - 屏幕配置问题:该字段未被添加到当前项目+问题类型的「创建问题」屏幕中,需要联系Jira管理员调整屏幕配置。
推荐实现方式
- 优先使用字段ID:自定义字段的显示名称可能被修改,而ID是永久不变的,用ID能避免后续维护问题。
- 简化下拉框值传递:对于下拉框类型的字段,直接传入选项的ID字符串(或Long类型)比构建
CustomFieldOption对象更简洁高效。 - 提前验证字段配置:创建问题前,确认目标字段已添加到对应问题类型的创建屏幕,避免因配置缺失导致的请求失败。
内容的提问来源于stack exchange,提问作者beer geek
相关产品推荐
相关产品推荐

