1

目前,我的 CruiseControl.NET 电子邮件发布者将其用户列表硬编码在构建配置文件中

<publishers>
    [ ... ]
    <email from="autobuild@domain.com" mailhost="stmp.domain.com" mailport="25" includeDetails="TRUE">
        <replyto>buildserver@domain.com</replyto>
        <users>
            <user name="a.user" group="buildmaster" address="a.user@domain.com"/>
            <user name="b.user" group="developers" address="b.user@domain.com"/>
        </users>
        <groups>
            <group name="developers">
                <notifications>
                    <notificationType>Failed</notificationType>
                    <notificationType>Fixed</notificationType>
                </notifications>
            </group>
            <group name="buildmaster">
                <notifications>
                    <notificationType>Always</notificationType>
                </notifications>
            </group>
        </groups>
        <modifierNotificationTypes>
            <NotificationType>Failed</NotificationType>
            <NotificationType>Fixed</NotificationType>
        </modifierNotificationTypes>
    </email>
</publishers>

我希望能够从外部文件中读取用户列表。我们有几十个构建文件,我想简化添加新用户和删除不再感兴趣的用户的过程。

我可以这样做吗?

4

1 回答 1

2

是的 - 只需查看配置预处理器,特别是包含部分。

您可以将您的<users/>节点移动到一个名为 eg 的单独文件email_users.xml中并将其维护在一个地方,然后将其包含在<cb:include href="email_users.xml"/>

示例email_users.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<cb:config-template xmlns:cb="urn:ccnet.config.builder"
  xmlns="http://thoughtworks.org/ccnet/1/5">
  <users>
    <user name="a.user" group="buildmaster" address="a.user@domain.com"/>
    <user name="b.user" group="developers" address="b.user@domain.com"/>
  </users>
</cb:config-template>

请记住,要使其正常工作,您的主文件应以

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"
  xmlns="http://thoughtworks.org/ccnet/1/5"> 
于 2012-09-09T09:34:23.757 回答