Вызов файла .bat из определенного места через CCNET - PullRequest
2 голосов
/ 05 марта 2012

Я настроил 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 ]

3 голосов
/ 07 марта 2012

Мне не хватало /C в элементе build args, поэтому я работал с:

<exec> 
  <executable>c:\Windows\System32\cmd.exe</executable>
  <baseDirectory>BuildAssets</baseDirectory>
  <buildArgs>/C %SONAR_RUNNER_HOME%\bin\sonar-runner</buildArgs>
  <buildTimeoutSeconds>$(slowBuildTimeout)</buildTimeoutSeconds>
</exec>
0 голосов
/ 05 марта 2012

Полагаю, SONAR_RUNNER_HOME - это переменная окружения. Если это так, вы должны ссылаться на это так: $(SONAR_RUNNER_HOME).

...