SonarQube4.2から複数プログラム言語の品質を1つのプロジェクトで集められるようになりました。
ちょっとはまったので、その備忘録を残しておきます。
(mavenでの解説です。)
複数プログラム言語の品質を収集できるようになったとはいえ、
デフォルトの設定では動きません。
SonarQube4.2から「sonar.sources」のプロパティが追加されています。
このプロパティ、デフォルト値が「src/main/java」です。。。
なのでデフォルトだと結局Javaの品質しか集めません。。。
pomのプロパティに以下を追加だけで、複数プログラム言語の品質を収集するようになります。
※sonar-web-pluginやsonar-javascript-pluginは先に入れておく必要があります。
<properties>
<sonar.sources>src/main</sonar.sources>
</properties>
これで、src/main以下のソースを全て読み込むようになりますが、
jqueryなどのライブラリが入っていると、これも読み込む対象とされてしまうので、
こういうものは、「sonar.exclusions」で除外しておきます。
以下のようにします。
<properties>
<sonar.sources>src/main</sonar.sources>
<sonar.exclusions>src/test/**/.java,**/*jquery.js</sonar.exclusions>
</properties>
上記はテストコードとjqueryを抜く、と宣言しています。
この状態で「mvn sonar:sonar」を実行すれば複数プログラム言語の品質プロジェクトが作られます。
また、上記プロパティをmavenの引数に与えた場合は、上手く値が適応されず「src/main/java」になってしまうので、SonarQube4.2ではpomに書いておく必要がありました。