目前,我的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>
我希望能够从外部文件中读取用户列表。我们有几十个构建文件,我想简化添加新用户和删除不再感兴趣的用户的过程。
我可以这样做吗?
答案 0 :(得分:2)
是 - 只需查看配置预处理器,特别是Include部分。
您可以将<users/>
节点移动到一个名为“{1}}”的单独文件中。 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">