java SonarQube Findbugs“需要编译源代码”
我试图让SonarQube findbugs工作,但当我尝试运行它时,我得到了一个错误:“findbugs需要编译源代码。请在执行sonar之前构建项目,并检查编译类的位置。”
声纳。sources被设置为一个包含我的所有src文件和sonar的文件夹。二进制文件被设置到一个包含我的所有类和jar文件的文件夹中。对于我的一个项目,这个布局可以与findbugs一起使用,但在另一个项目上,我得到了上面的错误
这是FindBugs将不运行时提供的调试错误:http://pastie.org/9483921
我该如何解决这个问题,FindBugs是否需要类/jar进入某个文件夹才能工作
谢谢
# 1 楼答案
我过去也遇到过同样的问题
检查src/main文件夹下是否没有只包含
pkg-info.java
文件的文件夹。这些文件是javadoc文件,因此不会被编译。但是,该文件夹是在target/classes中创建的,findbugs检测到它,但没有发现.class
,这会导致“需要编译源”消息崩溃解决方案是删除带有
pkg-info.java
文件的文件夹,或者在其中添加真正的java源文件(这将被编译并使findubgs感到高兴)# 2 楼答案
SonarQube要求在分析源代码之前先构建源代码。这将根据您构建它的方式而有所不同,但是check here and click on your building platform.
例如:如果您使用SonarQube使用Maven分析一个项目,则必须按此顺序发出以下命令(假设您按照this maven configuration page中的步骤进行操作,该命令作为第一个链接中的选项链接):
因此,您必须在进行任何声纳分析之前构建代码。另外请注意,您必须单独发出这些命令,并应等待安装完成后再运行sonar
# 3 楼答案
添加属性
声纳配置。如果你正在使用多个项目进行构建,请使用coma Separad
# 4 楼答案
sonar属性名称已更改,请参见http://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode
例如声纳。JAVA双星取代声纳。插件版本的二进制文件>;2.5
这解决了我的findbugs问题
# 5 楼答案
如果您不想像以前那样编译和使用sonar runner,您可以创建一个文件夹,并在其中放置一个有效的java类,然后按如下方式执行: