私はSonarを試していますが、phpプロジェクトでいくつか問題があります。
少なくともphpとjsの分析を得るには、マルチモジュールで行う必要があります。
これは私の 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
しかし、ソナーランナーを実行すると、次のエラーが発生します。
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
そしてPHPMDエラーは
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.
しかし、プロジェクトとモジュールで dir ライブラリを除外した場合、なぜそうなるのでしょうか?
PHPMD に別の除外リストを指定する必要がありますか?