我的项目 pom.xml 中有以下邮件列表设置:
<mailingLists>
<mailingList>
<name>slackChannel</name>
<subscribe>test-channel</subscribe>
</mailingList>
</mailingLists>
我想在 Jenkins 管道中获取并检索订阅属性。我还尝试过滤邮件列表,使其名称等于 slackChannel。但我得到了这个例外:
java.lang.IllegalArgumentException: One or more variables have some issues with their values: MAVEN_MAILING_LIST
。我对 groovy 不太熟悉,因此可以使用以下代码获得一些帮助:
MAVEN_POM_MODEL = readMavenPom() // requires plugin: https://plugins.jenkins.io/pipeline-utility-steps/
MAVEN_MAILING_LIST = MAVEN_POM_MODEL?.getMailingLists().findAll({it.getName() == "slackChannel"}).get(0).getMailingList().getSubscribe()
谢谢!
你的表情过于复杂:
MAVEN_POM_MODEL?.getMailingLists().findAll({it.getName() == "slackChannel"}).get(0).getMailingList().getSubscribe()
但基本上
get(0)
返回一个 MailingList,并且它没有 getMailingList()
方法。可以简化一下:
MAVEN_POM_MODEL.getMailingLists().find({it.getName() == "slackChannel"}.getSubscribe()
一个不相关的说明:一旦您开始使用安全导航
?.
,所有链接的导航操作符也应该是安全的,因为您明确允许传递null
。在 Groovy 中,由于 NullObject,内置集合基本上没有必要,但对于其他类,它可能很有用。