web-dev-qa-db-ja.com

SonarQubeFindbugsは「ソースをコンパイルする必要があります」

SonarQube findbugsを機能させようとしていますが、実行しようとすると、「Findbugsにはソースをコンパイルする必要があります。sonarを実行する前にプロジェクトをビルドし、コンパイルされたクラスの場所を確認してください。」というエラーが表示されます。

sonar.sourcesは、すべてのsrcファイルを含むフォルダーに設定され、sonar.binariesは、すべてのクラスファイルとjarファイルを含むフォルダーに設定されます。このレイアウトは、私のプロジェクトの1つでfindbugsで機能しますが、もう1つでは上記のエラーが発生します。

これは、FindBugsが実行されないときに提供されるデバッグエラーです: http://pastie.org/9483921

どうすればこれを修正できますか?FindBugsが機能するためにクラス/ jarが必要な特定のフォルダーはありますか?

ありがとう。

13
Kory

プロパティを追加

sonar.binaries=${workspace}/proy/build/

ソナー構成へ。複数のプロジェクトを使用してビルドする場合は、カンマを分離して使用してください。

9
other name

SonarQubeでは、分析する前にソースコードをビルドする必要があります。これは、構築方法によって異なりますが、 ここをチェックして構築プラットフォームをクリックしてください。

例:SonarQubeを使用してMavenでプロジェクトを分析している場合は、次のコマンドをこの順序で発行する必要があります( このMaven構成ページ に従って手順を実行したと仮定すると、オプションとしてリンクされます)最初のリンクで):

mvn clean install
mvn sonar:sonar

したがって、ソナー分析を実行する前に、コードをビルドする必要があります。また、これらのコマンドを個別に発行する必要があり、インストールが完全に完了するのを待ってからsonarを実行する必要があることにも注意してください。

2
Anthony E.

私は過去に同じ問題に直面しました。

Src/mainフォルダの下にpkg-info.Javaファイルのみを含むフォルダがないことを確認してください。これらのファイルはjavadocファイルであるため、コンパイルされません。ただし、フォルダはターゲット/クラスに作成され、findbugsはそれを検出しますが、「ソースをコンパイルする必要があります」というメッセージでクラッシュを引き起こす.classを検出しません。

解決策は、pkg-info.Javaファイルを含むフォルダーを削除するか、実際のJavaソースファイルを追加することです(コンパイルされ、findubgsを幸せにします)。

1
Kraal

以前のようにソナーランナーをコンパイルして使用したくない場合は、フォルダーを作成し、そこに有効なJavaクラスを配置して、以下のように実行できます。

sonar-runner -Dsonar.Java.binaries=folder path
1
Kevin Sarabi

ソナーのプロパティ名が変更されました。 http://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode を参照してください。

例えばsonar.Java.binariesは、プラグインバージョン> 2.5のsonar.binariesを置き換えます

これでfindbugsの問題が修正されました。

0
Erd