We have a large enterprise code base (2+MM lines of code). Enabling the checkstyle plugin changes the full build time in Eclipse from 9 minutes to over 20 minutes. I would like to see Checkstyle get the same options that FindBugs uses to help control the amount of time an engineers sits wasted waiting for a full clean and build to complete. Here are the features of FindBugs I would like to see in Checkstyle:
The first page of the FindBugs project settings page defines two settings,
[] Run automatically, [] (also on full build)
Disabling both checkboxes disables it.
Enabling the Run automatically checkbox but leaving the (also on full build) disabled, causes it to run anytime a file is changed and built by the incremental compiler. However, when you clean the workspace, it will not run. This saves a tremendous amount of time on a full build not doing a check all over again.
Enabling the (also on full build) checkbox causes it to run both anytime a file is changed and built by the incremental compiler and also on a full build.
The second checkbox is only enabled if the first checkbox is checked.
From what I can see, the project keeps the FindBugs builder in the builder list in the .project file only if the (also on full build) is checked.
The other option which is really powerful is in the Plugins and misc. Settings tab, which is
[] Run FB analysis as extra job (independent from build job)
Checking this checkbox causes the analysis to run in the background. The build doesn't wait for the analysis to complete. Since the build is sequential, builder by builder, project by project, this prevents the time spent in the analysis from slowing down the build (i.e. it runs in the background while the build continues).
Thanks. I'll consider implementing the second feature (scheduling of separate Checkstyle jobs) during a full build.
Implemented new preference "Run Checkstyle in background on full builds", deactivated by default.
When enabled it will do the Checkstyle audit in separate jobs, decoupled from the platform build.