Question

I'm trying Sonar and i've got some issues with it for a php project.

I have to do it multi-module to get at least php and js analysis.

this is my sonar-project.properties:

sonar.projectKey=xxxx sonar.projectName=xxxx sonar.projectVersion=1.0

sonar.sourceEncoding=UTF-8
sonar.sources=
sonar.language=php
sonar.exclusions=htdocs/libraries/externals/**
sonar.phpCodesniffer.skip=true

sonar.modules=php-module,js-module

# PHP module
php-module.sonar.projectName=PHP Module
php-module.sonar.language=php
php-module.sonar.sources=
php-module.sonar.projectBaseDir=htdocs
php-module.sonar.exclusions=libraries/externals/**

# JavaScript module
js-module.sonar.projectName=JavaScript Module
js-module.sonar.language=js
js-module.sonar.sources=js
js-module.sonar.projectBaseDir=htdocs

But when i run sonar-runner, i get this error:

Exception in thread "main" org.sonar.runner.RunnerException: org.sonar.api.utils.SonarException: PHPMD execution failed with returned code '1'. Please check the documentation of PHPMD to know more about this failure

and the PHPMD error is

 The parser has reached an invalid state near line "32" in file "/var/www/vhosts/dev3.xxxx.local/htdocs/libraries/externals/AvaTax4PHP/classes/ATConfig.class.php". Please check the following conditions: The keyword "parent" was used as type hint but the class "ATConfig" does not declare a parent.

But why is that happening if i've excluded the dir libraries in the project and the module?

Do i have to specify to PHPMD another list of exclusions?

Was it helpful?

Solution

For PHPMD (just as for PHP CodeSniffer, for example) you will have to specify a separate exclude pattern. You can use PHPMD's --excludeparameter for that.

Took me a while to figure it out, but you can set PHPMD's command line parameters with the following setting in your sonar-project.properties file:

sonar.phpPmd.argumentLine=--exclude libraries/externals

OTHER TIPS

You can refer to this FAQ entry to know how to achieve your goal: http://docs.codehaus.org/display/SONAR/PHP+Plugin+FAQ#PHPPluginFAQ-HowdoIpreventexternaltoolsfromanalyzingsomesourcefiles

BTW, you should declare:

php-module.sonar.sources=.

, instead of:

php-module.sonar.sources=
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top