Before 1.0-milestone-9, pmd and findbugs were second-class plugins and not wired in as dependencies of the “check” task (at least my custom tasks were not, so devs ran them manually and the CI server always ran them).
Anyone who has utilized findbugs knows that it is not always a “quick” execution.
Previously for our java projects, we’d just invoke “gradle build” and assemble tasks and check tasks were quick (1 minute and some change for a clean build of our multi-project build). Attempting to convert over to milestone-9, a single findbugs check on one subproject can take more than that time, so the pending convention is “gradle assemble test” or “gradle test assemble”.
Gradle is nice in that there are several options: don’t specify a task and let it use the defaultTasks (set them to assemble and test), create some special meta-task that simply depends upon assemble and test, explicitly adjust the doFirst() of the findbugs tasks to not do anything unless some property is set, etc.
Should there be something like a “fastBuild/devBuild” task that developers utilize for quick compiles and simple tests, and some progressively named “checkedBuild” that runs static analyzers, and maybe “integrationBuild” that runs heavier-weight tests? I’m not really sure where to go with this other than I need to do something so that developers used to typing “gradle build” don’t start complaining to me because their 10-30 second builds bloat into several minutes because one or more findbugs analysis tasks is no longer up-to-date.