CruiseControl.Net 与 Gendarme 集成需要配置以下三个文件(不是两个,是三个)
A.ccnet.config(C:\Program Files\CruiseControl.NET\server)
B.dashboard.config(C:\Program Files\CruiseControl.NET\webdashboard)
C.packages.xml(C:\Program Files\CruiseControl.NET\webdashboard\packages)
++++++++++++++++++++分别介绍每个文件的配置方法的分割线++++++++++++++++++++++++++
1.Gendarme在ccnet.config文件中的配置
在ccnet.config文件中的<task></task>块中加入以下内容:
<gendarme>
<executable>C:\Program Files\Gendarme\gendarme.exe</executable>
<assemblies>
<assemblyMatch expr="*.dll" />
<assemblyMatch expr="*.exe" />
</assemblies>
<baseDirectory>D:\project\UI\bin\Debug</baseDirectory>
<configFile>C:\Program Files\Gendarme\rules.xml</configFile>
<ruleSet>default</ruleSet>
<limit>1800</limit>
<severity>medium+</severity>
<confidence>normal+</confidence>
<quiet>FALSE</quiet>
<verbose>TRUE</verbose>
<failBuildOnFoundDefects>FALSE</failBuildOnFoundDefects>
<verifyTimeoutSeconds>1800</verifyTimeoutSeconds>
<description>Gendarme-rule-test</description>
</gendarme>
<merge>
<files>
<file>D:\ccnet\gendarme-result.xml</file>
<!-- Other files to merge for your build would also be included here -->
</files>
</merge>
如果邮件中也想带上Gendarme的分析结果概要,在邮件格式那里也配上(邮件怎么配点这里)。
<xslFile>xsl\gendarme-summary-ccnet.xsl</xslFile>
2. Gendarme在dashboard.config文件中的配置
<xslFile>xsl\gendarme-summary-ccnet.xsl</xslFile>
<xslReportBuildPlugin description="Gendarme Report" actionName="GendarmeBuildReport" xslFileName="xsl\gendarme-report-ccnet.xsl"/>
对应的位置如图所示,
3.Gendarme在package.xml文件中的配置
如果这里不经过配置的话,前面就算配置的再对,Gendarme的报告明明已经生成了,但dashboard中的 buildplugin面板里面总也不出现Gendarme Report项的。感谢Juergen的分享,才最终找到了需要配置的这个文件所在。
配置方法如下:
<package name="Gendarme Results" description="Display the results of a Gendarme report." type="Plugin" file="Gendarme.zip" installed="yes" />
确保此行中的installed = "yes"即可。
这个问题按Juergen所言,在ccnet的1.6.7981.1版本中可以通过登录dashboard安装Gendarme包来实现的,但我总是在线安装不成功,提示这个文件拒绝访问(估计是IIS中未配置好)。只好手动改下,倒也不负恩泽,哈哈。
Gendarme在工作的截图
完。