SonarQube findbugsを機能させようとしていますが、実行しようとすると、「Findbugsにはソースをコンパイルする必要があります。sonarを実行する前にプロジェクトをビルドし、コンパイルされたクラスの場所を確認してください。」というエラーが表示されます。
sonar.sourcesは、すべてのsrcファイルを含むフォルダーに設定され、sonar.binariesは、すべてのクラスファイルとjarファイルを含むフォルダーに設定されます。このレイアウトは、私のプロジェクトの1つでfindbugsで機能しますが、もう1つでは上記のエラーが発生します。
これは、FindBugsが実行されないときに提供されるデバッグエラーです: http://pastie.org/9483921
どうすればこれを修正できますか?FindBugsが機能するためにクラス/ jarが必要な特定のフォルダーはありますか?
ありがとう。
プロパティを追加
sonar.binaries=${workspace}/proy/build/
ソナー構成へ。複数のプロジェクトを使用してビルドする場合は、カンマを分離して使用してください。
SonarQubeでは、分析する前にソースコードをビルドする必要があります。これは、構築方法によって異なりますが、 ここをチェックして構築プラットフォームをクリックしてください。
例:SonarQubeを使用してMavenでプロジェクトを分析している場合は、次のコマンドをこの順序で発行する必要があります( このMaven構成ページ に従って手順を実行したと仮定すると、オプションとしてリンクされます)最初のリンクで):
mvn clean install
mvn sonar:sonar
したがって、ソナー分析を実行する前に、コードをビルドする必要があります。また、これらのコマンドを個別に発行する必要があり、インストールが完全に完了するのを待ってからsonarを実行する必要があることにも注意してください。
私は過去に同じ問題に直面しました。
Src/mainフォルダの下にpkg-info.Java
ファイルのみを含むフォルダがないことを確認してください。これらのファイルはjavadocファイルであるため、コンパイルされません。ただし、フォルダはターゲット/クラスに作成され、findbugsはそれを検出しますが、「ソースをコンパイルする必要があります」というメッセージでクラッシュを引き起こす.class
を検出しません。
解決策は、pkg-info.Java
ファイルを含むフォルダーを削除するか、実際のJavaソースファイルを追加することです(コンパイルされ、findubgsを幸せにします)。
以前のようにソナーランナーをコンパイルして使用したくない場合は、フォルダーを作成し、そこに有効なJavaクラスを配置して、以下のように実行できます。
sonar-runner -Dsonar.Java.binaries=folder path
ソナーのプロパティ名が変更されました。 http://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode を参照してください。
例えばsonar.Java.binariesは、プラグインバージョン> 2.5のsonar.binariesを置き換えます
これでfindbugsの問題が修正されました。