发布我当前的项目状态时遇到了问题。
映射:
<publishers>
<xmllogger /><!-- Log For WebDashboard ##Do not remove##-->
<email>
...
</email>
<onfailure>
<exec>
<executable>echo ERROR > logs/status.txt</executable>
</exec>
</onfailure>
</publishers>
当我想启动我的服务时,我收到以下消息:
ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: 无法从配置文档中实例化CruiseControl项目。 配置文档可能缺少正确填充CruiseControl配置所需的Xml节点。 无法加载数组项'onfailure' - 无法将类型System.String转换为ThoughtWorks.CruiseControl.Core.ITask以获取具有值的对象:“echo ERROR&gt; logs / status.txt”
有人知道那条消息的含义吗?
感谢您的期待
亚历
答案 0 :(得分:5)
您使用的是CruiseControl还是CruiseControl.NET?
如果是CC.NET,则“onfailure”节点不存在。相反,你应该像这样使用Conditionnal Publisher [1]:
<conditionalPublisher>
<conditions>
<condition>Failure</condition>
</conditions>
<publishers>
<exec>
<executable>echo ERROR > logs/status.txt</executable>
</exec>
</publishers>
</conditionalPublisher>
您可能还需要将回显任务封装在cmd invokation中:
<exec>
<executable>cmd.exe</executable>
<buildArgs>/c "echo ERROR > logs\status.txt"</buildArgs>
</exec>
[1] http://ccnetlive.thoughtworks.com/ccnet/doc/CCNET/Conditional%20Publisher.html
答案 1 :(得分:0)
从documentation看,<executable>
必须是可执行文件的名称,并且参数必须在<buildArgs>
中传递。所以这样的事情可能会成功。
<exec>
<executable>echo</executable>
<buildArgs>ERROR > logs/status.txt</buildArgs>
</exec>