在 groovy 中过滤邮件列表

问题描述 投票:0回答:1

我的项目 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 jenkins groovy
1个回答
0
投票

你的表情过于复杂:

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,内置集合基本上没有必要,但对于其他类,它可能很有用。

© www.soinside.com 2019 - 2024. All rights reserved.