2013-11-15 3 views
0

Я пытаюсь проанализировать свое решение (C# .NET) с помощью сонара. К сожалению, после того, как плагин загружая его не удается с следующей StackTrace:Невозможно запустить Sonar

14:53:19.646 DEBUG - Release semaphore on project : [email protected][id=3169,key=com.exigenservices:cm,qualifier=TRK], with key batch-com.exigenservices:cm 
INFO: ------------------------------------------------------------------------ 
INFO: EXECUTION FAILURE 
INFO: ------------------------------------------------------------------------ 
Total time: 2:12.629s 
Final Memory: 13M/405M 
ERROR: Error during Sonar runner execution 
INFO: ------------------------------------------------------------------------ 
org.sonar.runner.impl.RunnerException: Unable to execute Sonar 
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91) 
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) 
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) 
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) 
    at org.sonar.runner.api.Runner.execute(Runner.java:90) 
    at org.sonar.runner.Main.executeTask(Main.java:70) 
    at org.sonar.runner.Main.execute(Main.java:59) 
    at org.sonar.runner.Main.main(Main.java:41) 
Caused by: java.util.NoSuchElementException 
    at java.util.HashMap$HashIterator.nextEntry(HashMap.java:929) 
    at java.util.HashMap$ValueIterator.next(HashMap.java:954) 
    at org.sonar.dotnet.tools.commons.visualstudio.VisualStudioProject.getArtifactDirectory(VisualStudioProject.java:178) 
    at org.sonar.dotnet.tools.commons.visualstudio.VisualStudioProject.getArtifact(VisualStudioProject.java:195) 
    at org.sonar.dotnet.tools.commons.visualstudio.VisualStudioProject.getGeneratedAssemblies(VisualStudioProject.java:209) 
    at org.sonar.plugins.csharp.api.sensor.AbstractRegularCSharpSensor.assembliesFound(AbstractRegularCSharpSensor.java:101) 
    at org.sonar.plugins.csharp.api.sensor.AbstractRegularCSharpSensor.shouldExecuteOnProject(AbstractRegularCSharpSensor.java:81) 
    at org.sonar.plugins.csharp.api.sensor.AbstractRuleBasedCSharpSensor.shouldExecuteOnProject(AbstractRuleBasedCSharpSensor.java:48) 
    at org.sonar.batch.bootstrap.BatchExtensionDictionnary.shouldKeep(BatchExtensionDictionnary.java:62) 
    at org.sonar.batch.bootstrap.BatchExtensionDictionnary.getFilteredExtensions(BatchExtensionDictionnary.java:52) 
    at org.sonar.batch.bootstrap.BatchExtensionDictionnary.select(BatchExtensionDictionnary.java:42) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:63) 
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:114) 
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:150) 

На самом деле в кэше гидролокатора (.sonar) каталог, представленный следующие плагины:

checkstyle 
core 
cpd 
csharp 
csharpfxcop 
csharpgallio 
csharpgendarme 
csharpndeps 
csharpsquid 
csharpstylecop 
dbcleaner 
design 
emailnotifications 
findbugs 
jacoco 
java 
l10nen 
mavenbatch 
pmd 
squidjava 
surefire 

К сожалению, у меня нет ни малейшего представления горячей, чтобы исправить это, и где проблема из-за плохой отладочной информации сонара.

ответ

0

Это означает, что файл CSPROJ вашего проекта неверен и отсутствует некоторая информация о каталоге артефакта, в котором сгенерирована сборка.

+0

Благодарим вас за подсказку, но, может быть, вы можете объяснить, какой из сокетов xpath (и в каком пространстве имен) ожидает от файла 'csproj'? Я пытаюсь выяснить, в чем проблема. Мой файл проекта имеет OutputPath, имеет заголовок XML, имеет корневой элемент, который выглядит как ''. Также он имеет 'OutputPath' внутри' PropertyGroup' с условием 'Condition = '' $ (Конфигурация) | $ (Платформа) '==' Отладка | AnyCPU '''. –

+0

Можете ли вы изменить свой вопрос и скопировать начало своего файла CSPROJ? (где перечислены все свойства) –

1

Visual Studio проект парсер в .Net плагинов SonarQube ожидают найти выходные файлы с помощью этого XPath:

"/vst:Project/vst:PropertyGroup[contains(@Condition,'" + config + "')]/vst:OutputPath" 

где config конфигурация сборки она определила, что следует использовать.

Из того, что я могу сказать, глядя на current source code и стека исключений трассировки вы предоставили (которые не выстраиваются точно), исключение становится выброшены на этой линии:

if (artifactDirectory == null) { 
    // just take the first one found... 
    artifactDirectory = buildConfOutputDirMap.values().iterator().next(); 

, который подразумевает, что оно не удалось найти какой-либо результат сборки для вашего проекта.

Если вы обнаружили, что ваш файл csproj имеет другое место для OutputPath, отправьте отчет об ошибке в SonarQube user mailing list, чтобы он мог быть исправлен в будущем.

Смежные вопросы