使用CCNET从特定位置调用.bat文件

时间:2012-03-05 11:47:13

标签: cruisecontrol.net sonarqube ccnet-config

我已经设置了Sonar,并希望将代码分析作为我每晚构建的一部分。

我已经设置了夜间构建但是我在运行声纳跑步者时遇到了一些问题。

要运行代码分析,我想在主解决方案文件夹中导航到我创建的名为\ BuildAssets的文件夹。要手动运行代码分析,我会在\ BuildAssets中打开一个命令提示符并运行:%SONAR_RUNNER_HOME%\Bin\sonar-runner.bat

我如何在CCNET中设置它?

我试过了:

<exec> 
  <executable>%SONAR_RUNNER_HOME%\bin\sonar-runner.bat</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>

但这不起作用,因为它试图运行c:\cc\myBuild\code\BuildAssets\%SONAR_RUNNER_HOME%\bin\sonar-runner.bat

我也尝试过:

<exec> 
  <executable>cmd</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildArgs>%SONAR_RUNNER_HOME%\bin\sonar-runner</buildArgs>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>

但这似乎也没有做任何事情。我确信它很简单,但我不熟悉CCNET配置。

2 个答案:

答案 0 :(得分:3)

我错过了build args元素中的/C,所以我使用了这个:

<exec> 
  <executable>c:\Windows\System32\cmd.exe</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildArgs>/C %SONAR_RUNNER_HOME%\bin\sonar-runner</buildArgs>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>

答案 1 :(得分:0)

我认为SONAR_RUNNER_HOME是环境变量。如果是这样,您应该像这样引用它:$(SONAR_RUNNER_HOME)