javasonarqubefindbugs

Sonar findbugs, possibility to run findbugs on uncompiled files?


I'm using sonar (via and) and it runs just fine when I use the "Sonar way"-profile.

I would like to run the "Sonar way with Findbugz"-profile but I get an exception and it doesn't work.

What makes this even more difficult - don't ask why just don't - I only have the .java-files to work with and a lot of projects, compiling isn't an option.

Is there a way to run FingBugs on uncompiled files?

Output:

Buildfile: build.xml

sonar:
[sonar:sonar] Apache Ant version 1.7.1 compiled on August 24 2010
[sonar:sonar] Sonar Ant Task version: 1.0
[sonar:sonar] Loaded from: file:/usr/share/ant/lib/sonar-ant-task.jar
[sonar:sonar] Sonar work directory: /folder
[sonar:sonar] Sonar server: http://localhost:9000
[sonar:sonar] Sonar version: 3.5
[sonar:sonar] 13:54:34.062 INFO  .s.b.b.BatchSettings - Load batch settings
[sonar:sonar] 13:54:34.114 INFO     o.s.h.c.FileCache - User cache: /home/proj/.sonar/cache
[sonar:sonar] 13:54:34.131 INFO  atchPluginRepository - Install plugins
[sonar:sonar] 13:54:34.696 INFO  .s.b.b.TaskContainer - -------------  Executing Project Scan
[sonar:sonar] 13:54:35.199 INFO  b.b.JdbcDriverHolder - Install JDBC driver
[sonar:sonar] 13:54:35.201 INFO  .b.ProjectExclusions - Apply project exclusions
[sonar:sonar] 13:54:35.205 INFO      o.s.c.p.Database - Create JDBC datasource for jdbc:postgresql://localhost/sonar
[sonar:sonar] 13:54:35.292 INFO  actDatabaseConnector - Initializing Hibernate
[sonar:sonar] 13:54:38.035 INFO  .s.b.s.ScanContainer - -------------  Inspecting proj
[sonar:sonar] 13:54:38.039 INFO  .b.b.ProjectSettings - Load module settings
[sonar:sonar] 13:54:39.021 INFO  .s.b.ProfileProvider - Quality profile : [name=Sonar way with Findbugs,language=java]
[sonar:sonar] 13:54:39.037 INFO  s.f.ExclusionFilters - Excluded tests:
[sonar:sonar] 13:54:39.037 INFO  s.f.ExclusionFilters -   **/package-info.java
[sonar:sonar] 13:54:39.066 INFO  nPluginsConfigurator - Configure Maven plugins
[sonar:sonar] 13:54:39.256 INFO        org.sonar.INFO - Compare to previous analysis (2013-03-25)
[sonar:sonar] 13:54:39.321 INFO        org.sonar.INFO - Compare over 5 days (2013-03-20, analysis of 2013-03-25 09:55:51.594)
[sonar:sonar] 13:54:39.375 INFO        org.sonar.INFO - Compare over 30 days (2013-02-23, analysis of 2013-03-25 09:55:51.594)
[sonar:sonar] 13:54:39.542 INFO  .b.p.SensorsExecutor - Initializer JacocoAntInitializer...
[sonar:sonar] 13:54:39.602 INFO  o.s.p.j.JaCoCoPlugin - JaCoCo agent (version 0.6.2.201302030002) extracted: /tmp/jacocoagent973279373506480907.jar
[sonar:sonar] 13:54:39.602 INFO  .b.p.SensorsExecutor - Initializer JacocoAntInitializer done: 60 ms
[sonar:sonar] 13:54:39.602 INFO  s.f.FileSystemLogger - Base dir: /../..
[sonar:sonar] 13:54:39.602 INFO  s.f.FileSystemLogger - Working dir: /../../usr/local/repository/org/src
[sonar:sonar] 13:54:39.603 INFO  s.f.FileSystemLogger - Source dirs: /usr/local/repository/proj/org/src
[sonar:sonar] 13:54:39.603 INFO  s.f.FileSystemLogger - Binary dirs: /usr/local/repository/proj/org/bin
[sonar:sonar] 13:54:39.603 WARN  s.f.FileSystemLogger - Source encoding is platform dependent (UTF-8), default locale: en_US
[sonar:sonar] 13:54:39.668 INFO  p.PhasesTimeProfiler - Sensor JavaSourceImporter...
[sonar:sonar] 13:54:39.950 INFO  p.PhasesTimeProfiler - Sensor JavaSourceImporter done: 282 ms
[sonar:sonar] 13:54:39.951 INFO  p.PhasesTimeProfiler - Sensor JavaSquidSensor...
[sonar:sonar] 13:54:40.237 INFO    o.s.java.JavaSquid - Java AST scan...
[sonar:sonar] 13:54:42.784 INFO    o.s.java.JavaSquid - Java AST scan done: 2547 ms
[sonar:sonar] 13:54:42.964 INFO  p.PhasesTimeProfiler - Sensor JavaSquidSensor done: 3013 ms
[sonar:sonar] 13:54:42.965 INFO  p.PhasesTimeProfiler - Sensor FindbugsSensor...
[sonar:sonar] 13:54:42.965 INFO        org.sonar.INFO - Execute Findbugs 2.0.1...

BUILD FAILED
org.sonar.api.utils.SonarException: Can not execute Findbugs
        at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:149)
        at org.sonar.plugins.findbugs.FindbugsSensor.analyse(FindbugsSensor.java:62)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
        at org.sonar.batch.phases.Phases.execute(Phases.java:101)
        at org.sonar.batch.scan.ScanContainer.doStart(ScanContainer.java:147)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:65)
        at org.sonar.batch.scan.ScanTask.scanRecursively(ScanTask.java:56)
        at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:49)
        at org.sonar.batch.bootstrap.TaskContainer.doStart(TaskContainer.java:188)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.executeTask(TaskBootstrapContainer.java:73)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.doStart(TaskBootstrapContainer.java:62)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.BootstrapContainer.doStart(BootstrapContainer.java:104)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.Batch.execute(Batch.java:106)
        at org.sonar.ant.Launcher.executeBatch(Launcher.java:121)
        at org.sonar.ant.Launcher.execute(Launcher.java:60)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.sonar.ant.SonarTask.delegateExecution(SonarTask.java:167)
        at org.sonar.ant.SonarTask.execute(SonarTask.java:151)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:357)
        at org.apache.tools.ant.Target.performTasks(Target.java:385)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
        at org.apache.tools.ant.Main.runBuild(Main.java:758)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: org.sonar.api.utils.SonarException: Findbugs needs sources to be compiled. Please build project before executing sonar and check the location of compiled classes.
        at org.sonar.plugins.findbugs.FindbugsConfiguration.getFindbugsProject(FindbugsConfiguration.java:84)
        at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:107)
        ... 40 more

Total time: 14 seconds

Solution

  • No, this is not possible: Findbugs relies on bytecode to perform its code analysis. SO if you haven't compiled your code, you won't be able to run Findbugs on it.