2

私は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 に別の除外リストを指定する必要がありますか?

4

2 に答える 2

3

PHPMD の場合 (たとえば、PHP CodeSniffer の場合と同様)、別の除外パターンを指定する必要があります。そのためにPHPMDの--excludeパラメーターを使用できます。

sonar-project.properties理解するのにしばらく時間がかかりましたが、ファイルで次の設定を使用して PHPMD のコマンド ライン パラメータを設定できます。

sonar.phpPmd.argumentLine=--exclude libraries/externals
于 2013-05-19T19:13:48.053 に答える
1

この FAQ エントリを参照して、目標を達成する方法を知ることができます: http://docs.codehaus.org/display/SONAR/PHP+Plugin+FAQ#PHPPluginFAQ-HowdoIpreventexternaltoolsfromanalyzingsomesourcefiles

ところで、次のように宣言する必要があります。

php-module.sonar.sources=.

、 それ以外の:

php-module.sonar.sources=
于 2013-03-11T12:39:25.090 に答える