You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2014/09/22 02:58:20 UTC

[3/3] git commit: Update pmd addon to support downloading rule files as an artifact.

Update pmd addon to support downloading rule files as an artifact.


Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/e7f6ce48
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/e7f6ce48
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/e7f6ce48

Branch: refs/heads/master
Commit: e7f6ce487ffb5fdb5e555b364d2b189a45ce8cfd
Parents: 85be90c
Author: Peter Donald <pe...@realityforge.org>
Authored: Mon Sep 22 08:57:46 2014 +1000
Committer: Peter Donald <pe...@realityforge.org>
Committed: Mon Sep 22 08:57:46 2014 +1000

----------------------------------------------------------------------
 CHANGELOG           |  5 +++--
 addon/buildr/pmd.rb | 23 +++++++++++++++++++----
 2 files changed, 22 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/buildr/blob/e7f6ce48/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 672644f..a4d5894 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 1.4.21 (Pending)
-* Fixed : Update pmd addon to use pmd version 5.1.3.
-* Fixed : BUILDR-702 - Retain Unix permission flags when merging
+* Added:  Update pmd addon to support downloading rule files as an artifact.
+* Change: Update pmd addon to use pmd version 5.1.3.
+* Fixed:  BUILDR-702 - Retain Unix permission flags when merging
           zip files into another zip or tar archive. Submitted by Pepijn Van Eeckhoudt.
 
 1.4.20 (2014-08-23)

http://git-wip-us.apache.org/repos/asf/buildr/blob/e7f6ce48/addon/buildr/pmd.rb
----------------------------------------------------------------------
diff --git a/addon/buildr/pmd.rb b/addon/buildr/pmd.rb
index ba42a07..5110e62 100644
--- a/addon/buildr/pmd.rb
+++ b/addon/buildr/pmd.rb
@@ -38,12 +38,22 @@ module Buildr
         cp = Buildr.artifacts(dependencies).each(&:invoke).map(&:to_s)
         (options[:rule_set_paths] || []).each {|p| cp << p}
 
+        rule_sets = rule_set_files.dup
+
+        Buildr.artifacts(options[:rule_set_artifacts] || []).each do |artifact|
+          a = artifact.to_s
+          dirname = File.dirname(a)
+          rule_sets << a[dirname.length + 1, a.length]
+          cp << File.dirname(a)
+          artifact.invoke
+        end
+
         puts 'PMD: Analyzing source code...'
         mkdir_p File.dirname(output_file_prefix)
 
         Buildr.ant('pmd-report') do |ant|
           ant.taskdef :name=> 'pmd', :classpath => cp.join(';'), :classname => 'net.sourceforge.pmd.ant.PMDTask'
-          ant.pmd :shortFilenames => true, :rulesetfiles => rule_set_files.join(',') do
+          ant.pmd :shortFilenames => true, :rulesetfiles => rule_sets.join(',') do
             ant.formatter :type => format, :toFile => "#{output_file_prefix}.#{format}"
             source_paths.each do |src|
               ant.fileset :dir=> src, :includes=>'**/*.java'
@@ -85,7 +95,12 @@ module Buildr
       attr_writer :rule_set_files
 
       def rule_set_files
-        @rule_set_files ||= ['rulesets/java/basic.xml', 'rulesets/java/imports.xml', 'rulesets/java/unusedcode.xml', 'rulesets/java/finalizers.xml', 'rulesets/java/braces.xml']
+        @rule_set_files ||= (self.rule_set_artifacts.empty? ? ['rulesets/java/basic.xml', 'rulesets/java/imports.xml', 'rulesets/java/unusedcode.xml', 'rulesets/java/finalizers.xml', 'rulesets/java/braces.xml'] : [])
+      end
+
+      # Support specification of rule sets that are distributed as part of a maven repository
+      def rule_set_artifacts
+        @rule_set_artifacts ||= []
       end
 
       attr_writer :rule_set_paths
@@ -140,12 +155,12 @@ module Buildr
         if project.pmd.enabled?
           desc 'Generate pmd xml report.'
           project.task('pmd:rule:xml') do
-            Buildr::Pmd.pmd(project.pmd.rule_set_files, 'xml', project.pmd.output_file_prefix, project.pmd.flat_source_paths, :rule_set_paths => project.pmd.rule_set_paths)
+            Buildr::Pmd.pmd(project.pmd.rule_set_files, 'xml', project.pmd.output_file_prefix, project.pmd.flat_source_paths, :rule_set_paths => project.pmd.rule_set_paths, :rule_set_artifacts => project.pmd.rule_set_artifacts)
           end
 
           desc 'Generate pmd html report.'
           project.task('pmd:rule:html') do
-            Buildr::Pmd.pmd(project.pmd.rule_set_files, 'html', project.pmd.output_file_prefix, project.pmd.flat_source_paths, :rule_set_paths => project.pmd.rule_set_paths)
+            Buildr::Pmd.pmd(project.pmd.rule_set_files, 'html', project.pmd.output_file_prefix, project.pmd.flat_source_paths, :rule_set_paths => project.pmd.rule_set_paths, :rule_set_artifacts => project.pmd.rule_set_artifacts)
           end
 
           desc 'Generate pmd cpd xml report.'