SonarQube Findbugs"需要编译资源"

时间:2014-08-18 15:49:37

标签: java sonarqube findbugs

我试图让SonarQube findbug工作,但是当我尝试运行它时,我得到错误:" Findbugs需要编译源代码。请在执行声纳之前构建项目并检查已编译类的位置。"

sonar.sources设置为包含所有src文件的文件夹,sonar.binaries设置为包含所有类和jar文件的文件夹。这个布局适用于我的一个项目的findbugs,但另一方面我得到了上述错误。

这是FindBugs无法运行时提供的调试错误:http://pastie.org/9483921

我该如何解决这个问题,并且是否有某个文件夹FindBugs需要使用类/ jar工作?

感谢。

5 个答案:

答案 0 :(得分:8)

添加属性

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

对Sonar配置。如果要使用多个项目进行构建,请使用逗号分隔。

答案 1 :(得分:1)

SonarQube需要在分析源代码之前构建源代码。根据您的构建方式,这会有所不同,但check here and click on your building platform.

例如:如果您使用SonarQube分析带有Maven的项目,则必须按此顺序发出以下命令(假设您按照this maven configuration page中的步骤进行操作,该步骤在第一个中作为选项链接链路):

mvn clean install
mvn sonar:sonar

因此,您必须在进行任何声纳分析之前构建代码。另请注意,您必须单独发出这些命令,并且应该在运行声纳之前等待安装完全完成。

答案 2 :(得分:1)

我过去曾遇到过同样的问题。

检查您在src / main文件夹下的某个文件夹中是否包含仅包含pkg-info.java文件的文件夹。这些文件是javadoc文件,因此不会编译。但是,该文件夹是在目标/类中创建的,findbugs会检测到它,但找不到.class,这会导致“需要编译源代码”消息崩溃。

解决方案是删除包含pkg-info.java文件的文件夹,或在其中添加真正的java源文件(将编译并使findubgs满意。)

答案 3 :(得分:1)

如果您不想像以前一样编译和使用sonar-runner,您可以创建一个文件夹并在其中放置一个有效的java类并执行如下:

NSString *folderPath=[[PDKeychainBindings sharedKeychainBindings] objectForKey:@"key_name"];

答案 4 :(得分:0)

声纳属性名称已更改,请参阅http://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode

e.g。 sonar.java.binaries替换了sonar.binaries以获取插件版本> 2.5

这解决了我的findbugs问题。