Repository: buildr Updated Branches: refs/heads/master 12ccc0f5a -> 599652d09
Add findbugs.additional_project_names configuration to Findbugs addon to ease merging in the source paths from multiple projects into one Findbugs task. Project: http://git-wip-us.apache.org/repos/asf/buildr/repo Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/599652d0 Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/599652d0 Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/599652d0 Branch: refs/heads/master Commit: 599652d09be2fc054301d432047e5b6034002ac9 Parents: 12ccc0f Author: Peter Donald <[email protected]> Authored: Tue Mar 1 11:01:59 2016 +1100 Committer: Peter Donald <[email protected]> Committed: Tue Mar 1 11:01:59 2016 +1100 ---------------------------------------------------------------------- CHANGELOG | 2 ++ addon/buildr/findbugs.rb | 52 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 48 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/buildr/blob/599652d0/CHANGELOG ---------------------------------------------------------------------- diff --git a/CHANGELOG b/CHANGELOG index 76135b1..dac6d5b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ 1.4.24 (Pending) +* Added: Add findbugs.additional_project_names configuration to Findbugs addon to + ease merging in the source paths from multiple projects into one Findbugs task. * Added: Add checkstyle.additional_project_names configuration to Checkstyle addon to ease merging in the source paths from multiple projects into one Checkstyle task. * Added: Add pmd.additional_project_names configuration to PMD addon to ease merging in http://git-wip-us.apache.org/repos/asf/buildr/blob/599652d0/addon/buildr/findbugs.rb ---------------------------------------------------------------------- diff --git a/addon/buildr/findbugs.rb b/addon/buildr/findbugs.rb index 7712799..4748840 100644 --- a/addon/buildr/findbugs.rb +++ b/addon/buildr/findbugs.rb @@ -154,6 +154,46 @@ module Buildr @extra_dependencies ||= [self.project.compile.dependencies, self.project.test.compile.dependencies].flatten.compact end + # An array of additional projects to scan for main and test sources + attr_writer :additional_project_names + + def additional_project_names + @additional_project_names ||= [] + end + + def complete_source_paths + paths = self.source_paths.dup + + self.additional_project_names.each do |project_name| + p = self.project.project(project_name) + paths << [p.compile.sources, p.test.compile.sources].flatten.compact + end + + paths.flatten.compact + end + + def complete_analyze_paths + paths = self.analyze_paths.dup + + self.additional_project_names.each do |project_name| + paths << self.project.project(project_name).compile.target + end + + paths.flatten.compact + end + + def complete_extra_dependencies + deps = self.extra_dependencies.dup + + self.additional_project_names.each do |project_name| + p = self.project.project(project_name) + deps << [p.compile.dependencies, p.test.compile.dependencies].flatten.compact + end + + deps.flatten.compact + end + + protected def initialize(project) @@ -179,15 +219,15 @@ module Buildr { :properties => project.findbugs.properties, :fail_on_error => project.findbugs.fail_on_error?, - :extra_dependencies => project.findbugs.extra_dependencies + :extra_dependencies => project.findbugs.complete_extra_dependencies } options[:exclude_filter] = project.findbugs.filter_file if File.exist?(project.findbugs.filter_file) options[:output] = 'xml:withMessages' options[:report_level] = project.findbugs.report_level Buildr::Findbugs.findbugs(project.findbugs.xml_output_file, - project.findbugs.source_paths.flatten.compact, - project.findbugs.analyze_paths.flatten.compact, + project.findbugs.complete_source_paths, + project.findbugs.complete_analyze_paths, options) end @@ -198,15 +238,15 @@ module Buildr { :properties => project.findbugs.properties, :fail_on_error => project.findbugs.fail_on_error?, - :extra_dependencies => project.findbugs.extra_dependencies + :extra_dependencies => project.findbugs.complete_extra_dependencies } options[:exclude_filter] = project.findbugs.filter_file if File.exist?(project.findbugs.filter_file) options[:output] = 'html' options[:report_level] = project.findbugs.report_level Buildr::Findbugs.findbugs(project.findbugs.html_output_file, - project.findbugs.source_paths.flatten.compact, - project.findbugs.analyze_paths.flatten.compact, + project.findbugs.complete_source_paths, + project.findbugs.complete_analyze_paths, options) end end
