buildr 1.4.7.pre2 → 1.4.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +24 -2
- data/Rakefile +4 -1
- data/addon/buildr/{checkstyle.rake → checkstyle.rb} +0 -0
- data/addon/buildr/{findbugs.rake → findbugs.rb} +0 -0
- data/addon/buildr/gwt.rake +82 -0
- data/addon/buildr/{javancss.rake → javancss.rb} +0 -0
- data/addon/buildr/jdepend.rb.orig +178 -0
- data/addon/buildr/nailgun.rb +2 -2
- data/addon/buildr/{pmd.rake → pmd.rb} +3 -1
- data/addon/buildr/sonar.rb +142 -0
- data/buildr.gemspec +21 -17
- data/doc/installing.textile.orig +282 -0
- data/doc/more_stuff.textile +31 -0
- data/doc/more_stuff.textile.orig +1004 -0
- data/etc/KEYS +44 -0
- data/lib/buildr.rb +3 -3
- data/lib/buildr/core/doc.rb +9 -3
- data/lib/buildr/core/generate.rb +2 -2
- data/lib/buildr/core/run.rb +1 -1
- data/lib/buildr/core/shell.rb +1 -1
- data/lib/buildr/core/test.rb +1 -1
- data/lib/buildr/core/util.rb +2 -2
- data/lib/buildr/ide/eclipse.rb +4 -4
- data/lib/buildr/ide/idea.rb +184 -1
- data/lib/buildr/java/ant.rb +2 -3
- data/lib/buildr/java/bdd.rb +4 -4
- data/lib/buildr/java/pom.rb +5 -4
- data/lib/buildr/java/rjb.rb +1 -1
- data/lib/buildr/java/test_result.rb +4 -0
- data/lib/buildr/packaging/version_requirement.rb +1 -1
- data/lib/buildr/packaging/zip.rb +1 -1
- data/lib/buildr/run.rb +3 -2
- data/lib/buildr/scala/org/apache/buildr/Specs2Runner.class +0 -0
- data/lib/buildr/version.rb +1 -1
- data/rakelib/doc.rake +5 -5
- data/rakelib/package.rake +3 -3
- data/rakelib/rspec.rake +22 -4
- data/rakelib/stage.rake +16 -12
- data/spec/core/application_spec.rb +1 -1
- data/spec/core/cc_spec.rb +12 -4
- data/spec/core/doc_spec.rb +1 -1
- data/spec/core/run_spec.rb +17 -4
- data/spec/core/test_spec.rb +5 -3
- data/spec/ide/idea_spec.rb +2 -2
- data/spec/java/cobertura_spec.rb +4 -0
- data/spec/java/emma_spec.rb +4 -1
- data/spec/java/java_spec.rb +1 -1
- data/spec/java/pom_spec.rb +125 -0
- data/spec/packaging/archive_spec.rb +1 -1
- data/spec/packaging/artifact_spec.rb +1 -1
- data/spec/sandbox.rb +4 -0
- data/spec/spec_helpers.rb +6 -1
- data/spec/version_requirement_spec.rb +2 -0
- metadata +390 -239
data/CHANGELOG
CHANGED
@@ -1,4 +1,26 @@
|
|
1
|
-
1.4.7 (
|
1
|
+
1.4.7 (2012-05-29)
|
2
|
+
* Added: BUILDR-618 pom properties feature does not support hierarchy (kafka liu)
|
3
|
+
* Added: Add a Sonar extension.
|
4
|
+
* Change: BUILDR-638 Update to rake 0.9.2.2 (Russell Teabeault)
|
5
|
+
* Added: BUILDR-316 Add a GWT extension
|
6
|
+
* Change: BUILDR-624 Update rspec version to 2.9.0 (Russell Teabeault)
|
7
|
+
* Change: BUILDR-632 Update net-ssh version to 2.3.0 (Russell Teabeault)
|
8
|
+
* Change: BUILDR-632 Update net-sftp version to 2.0.5 (Russell Teabeault)
|
9
|
+
* Fixed: BUILDR-635 JRE container entry to be declared before user sources and dependencies (Dani Perez)
|
10
|
+
* Change: BUILDR-639 Stop requiring pygmentize to run "rake -T" (Russell Teabeault)
|
11
|
+
* Added: Enhance the IDEA extension to support the addition of several explicit facets such as
|
12
|
+
ejb, jruby, jpa, web and gwt.
|
13
|
+
* Added: Add several utility methods to IDEA extension for defining artifacts and configurations.
|
14
|
+
Add some explicit methods to support a gwt configuration and a "Exploded War" artifact.
|
15
|
+
* Change: Upgraded to Apache Ant 1.8.3
|
16
|
+
* Change: Default maven2 repository is now repo1.maven.org/maven2.
|
17
|
+
* Change: Make minimumTokenCount and encoding configurable for the PMD/CPD action
|
18
|
+
and default encoding to UTF-8 for compatibility with external tools (i.e. Jenkins)
|
19
|
+
* Change: BUILDR-615 VersionRequirement.version? now returns true for
|
20
|
+
versions following pattern "r9999", e.g. "r09"
|
21
|
+
* Change: BUILDR-630 Run task should not add test dependencies (Russell Teabeault)
|
22
|
+
* Change: BUILDR-629 JavaRunner should include target/resources in classpath (Russell Teabeault)
|
23
|
+
* Fixed: BUILDR-617 pom exclusion does not work (Kafka Liu)
|
2
24
|
* Added: Add a Findbugs extension.
|
3
25
|
* Added: Add a Checkstyle extension.
|
4
26
|
* Added: Add a JavaNCSS extension.
|
@@ -43,7 +65,7 @@
|
|
43
65
|
* Change: Move to Bundler to manage the project dependencies
|
44
66
|
* Change: BUILDR-548 Remove support for JTestR as it is no longer maintained (Antoine Toulme)
|
45
67
|
* Change: BUILDR-614 Buildr development - Using rvm, bundler and OSX installs the wrong rjb (Russell Teabeault)
|
46
|
-
* Change: Upgrade to RJB 1.
|
68
|
+
* Change: Upgrade to RJB 1.4.0
|
47
69
|
* Fixed: ArtifactNamespace fails when using artifacts with classfier.
|
48
70
|
* Fixed: Buildr.artifacts() should handle any object with :to_spec method
|
49
71
|
(i.e., any object that ActsAsArtifact)
|
data/Rakefile
CHANGED
@@ -13,6 +13,9 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
+
# To work-around a bug with gemcutter: http://stackoverflow.com/questions/4932881/gemcutter-rake-build-now-throws-undefined-method-write-for-syckemitter
|
17
|
+
require 'psych' if RUBY_VERSION >= '1.9.2' && !RUBY_PLATFORM[/java/]
|
18
|
+
|
16
19
|
# We need JAVA_HOME for most things (setup, spec, etc).
|
17
20
|
unless ENV['JAVA_HOME']
|
18
21
|
if RUBY_PLATFORM[/java/]
|
@@ -36,7 +39,7 @@ end
|
|
36
39
|
|
37
40
|
# Tell us if we need sudo for various commands.
|
38
41
|
def sudo_needed?
|
39
|
-
|
42
|
+
RbConfig::CONFIG['host_os'] !~ /windows|cygwin|bccwin|cygwin|djgpp|mingw|mswin|wince/i && !ENV['GEM_HOME']
|
40
43
|
end
|
41
44
|
|
42
45
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
module Buildr
|
17
|
+
module GWT
|
18
|
+
|
19
|
+
class << self
|
20
|
+
# The specs for requirements
|
21
|
+
def dependencies
|
22
|
+
['com.google.gwt:gwt-dev:jar:2.4.0']
|
23
|
+
end
|
24
|
+
|
25
|
+
def gwtc_main(modules, source_artifacts, output_dir, options = {})
|
26
|
+
cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s) + Buildr.artifacts(source_artifacts).each(&:invoke).map(&:to_s)
|
27
|
+
style = options[:style] || "OBFUSCATED," # "PRETTY", "DETAILED"
|
28
|
+
log_level = options[:log_level] # ERROR, WARN, INFO, TRACE, DEBUG, SPAM, or ALL
|
29
|
+
workers = options[:workers] || 2
|
30
|
+
|
31
|
+
args = []
|
32
|
+
if log_level
|
33
|
+
args << "-logLevel"
|
34
|
+
args << log_level
|
35
|
+
end
|
36
|
+
args << "-strict"
|
37
|
+
args << "-style"
|
38
|
+
args << style
|
39
|
+
args << "-localWorkers"
|
40
|
+
args << workers
|
41
|
+
args << "-war"
|
42
|
+
args << output_dir
|
43
|
+
if options[:compile_report_dir]
|
44
|
+
args << "-compileReport"
|
45
|
+
args << "-extra"
|
46
|
+
args << options[:compile_report_dir]
|
47
|
+
end
|
48
|
+
|
49
|
+
if options[:draft_compile]
|
50
|
+
args << "-draftCompile"
|
51
|
+
end
|
52
|
+
|
53
|
+
args += modules
|
54
|
+
|
55
|
+
Java::Commands.java 'com.google.gwt.dev.Compiler', *(args + [{:classpath => cp, :properties => options[:properties], :java_args => options[:java_args]}])
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
module ProjectExtension
|
60
|
+
include Extension
|
61
|
+
|
62
|
+
def gwt(module_names, options = {})
|
63
|
+
output_key = options[:output_key] || project.id
|
64
|
+
output_dir = project._(:target, :generated, :gwt, output_key)
|
65
|
+
artifacts = (project.compile.sources + project.resources.sources).collect do |a|
|
66
|
+
a.is_a?(String) ? file(a) : a
|
67
|
+
end
|
68
|
+
dependencies = artifacts(options[:dependencies]) || project.compile.dependencies
|
69
|
+
task = file(output_dir) do
|
70
|
+
Buildr::GWT.gwtc_main(module_names, dependencies + artifacts, output_dir, options.dup)
|
71
|
+
end
|
72
|
+
task.enhance(dependencies)
|
73
|
+
task.enhance([project.compile])
|
74
|
+
task
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class Buildr::Project
|
81
|
+
include Buildr::GWT::ProjectExtension
|
82
|
+
end
|
File without changes
|
@@ -0,0 +1,178 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
module Buildr
|
17
|
+
# Addes the <code>projectname:jdepend:swing</code>, <code>projectname:jdepend:text</code> and
|
18
|
+
# <code>projectname:jdepend:xml</code> tasks.
|
19
|
+
#
|
20
|
+
# Require explicitly using <code>require "buildr/jdepend"</code>.
|
21
|
+
module JDepend
|
22
|
+
|
23
|
+
class << self
|
24
|
+
|
25
|
+
# The specs for requirements
|
26
|
+
def dependencies
|
27
|
+
[
|
28
|
+
'jdepend:jdepend:jar:2.9.1'
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
def jdepend(output_file, target_paths, options = {})
|
33
|
+
dependencies = (options[:dependencies] || []) + self.dependencies
|
34
|
+
cp = Buildr.artifacts(dependencies).each(&:invoke).map(&:to_s)
|
35
|
+
|
36
|
+
args = []
|
37
|
+
if output_file
|
38
|
+
args << "-file"
|
39
|
+
args << output_file
|
40
|
+
end
|
41
|
+
target_paths.each do |target_path|
|
42
|
+
file(target_path).invoke
|
43
|
+
<<<<<<< HEAD
|
44
|
+
args << target_path
|
45
|
+
=======
|
46
|
+
args << target_path.to_s
|
47
|
+
>>>>>>> 28deb000947f13d5df722228ed2bc24fdcb303d3
|
48
|
+
end
|
49
|
+
|
50
|
+
# If no output file then we must be trying to run the swing app
|
51
|
+
command = output_file ? 'jdepend.xmlui.JDepend' : 'jdepend.swingui.JDepend'
|
52
|
+
|
53
|
+
begin
|
54
|
+
Java::Commands.java command, *(args + [{:classpath => cp, :properties => options[:properties], :java_args => options[:java_args]}])
|
55
|
+
rescue => e
|
56
|
+
raise e if options[:fail_on_error]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class Config
|
62
|
+
def enabled?
|
63
|
+
!!@enabled
|
64
|
+
end
|
65
|
+
|
66
|
+
attr_writer :enabled
|
67
|
+
|
68
|
+
def html_enabled?
|
69
|
+
File.exist?(self.style_file)
|
70
|
+
end
|
71
|
+
|
72
|
+
attr_writer :config_directory
|
73
|
+
|
74
|
+
def config_directory
|
75
|
+
@config_directory || project._(:source, :main, :etc, :jdepend)
|
76
|
+
end
|
77
|
+
|
78
|
+
attr_writer :report_dir
|
79
|
+
|
80
|
+
def report_dir
|
81
|
+
@report_dir || project._(:reports, :jdepend)
|
82
|
+
end
|
83
|
+
|
84
|
+
attr_writer :fail_on_error
|
85
|
+
|
86
|
+
def fail_on_error?
|
87
|
+
@fail_on_error.nil? ? false : @fail_on_error
|
88
|
+
end
|
89
|
+
|
90
|
+
attr_writer :xml_output_file
|
91
|
+
|
92
|
+
def xml_output_file
|
93
|
+
@xml_output_file || "#{self.report_dir}/jdepend.xml"
|
94
|
+
end
|
95
|
+
|
96
|
+
attr_writer :html_output_file
|
97
|
+
|
98
|
+
def html_output_file
|
99
|
+
@html_output_file || "#{self.report_dir}/jdepend.html"
|
100
|
+
end
|
101
|
+
|
102
|
+
attr_writer :style_file
|
103
|
+
|
104
|
+
def style_file
|
105
|
+
@style_file || "#{self.config_directory}/jdepend.xsl"
|
106
|
+
end
|
107
|
+
|
108
|
+
def target_paths
|
109
|
+
@target_paths ||= [self.project.compile.target, self.project.test.compile.target]
|
110
|
+
end
|
111
|
+
|
112
|
+
def to_options
|
113
|
+
{
|
114
|
+
:fail_on_error => project.jdepend.fail_on_error?,
|
115
|
+
# Set user home so that jdepend.properties will be loaded from there if present
|
116
|
+
:properties => { 'user.home' => project.jdepend.config_directory }
|
117
|
+
}
|
118
|
+
end
|
119
|
+
|
120
|
+
protected
|
121
|
+
|
122
|
+
def initialize(project)
|
123
|
+
@project = project
|
124
|
+
end
|
125
|
+
|
126
|
+
attr_reader :project
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
module ProjectExtension
|
131
|
+
include Extension
|
132
|
+
|
133
|
+
def jdepend
|
134
|
+
@jdepend ||= Buildr::JDepend::Config.new(project)
|
135
|
+
end
|
136
|
+
|
137
|
+
after_define do |project|
|
138
|
+
if project.jdepend.enabled?
|
139
|
+
desc "Generate JDepend xml report."
|
140
|
+
project.task("jdepend:xml") do
|
141
|
+
puts "JDepend: Analyzing source code..."
|
142
|
+
mkdir_p File.dirname(project.jdepend.xml_output_file)
|
143
|
+
Buildr::JDepend.jdepend(project.jdepend.xml_output_file,
|
144
|
+
project.jdepend.target_paths.flatten.compact,
|
145
|
+
project.jdepend.to_options)
|
146
|
+
end
|
147
|
+
|
148
|
+
desc "Run JDepend with Swing UI."
|
149
|
+
project.task("jdepend:swing") do
|
150
|
+
puts "JDepend: Analyzing source code..."
|
151
|
+
Buildr::JDepend.jdepend(nil,
|
152
|
+
project.jdepend.target_paths.flatten.compact,
|
153
|
+
project.jdepend.to_options)
|
154
|
+
end
|
155
|
+
|
156
|
+
if project.jdepend.html_enabled?
|
157
|
+
xml_task = project.task("jdepend:xml")
|
158
|
+
desc "Generate JDepend html report."
|
159
|
+
project.task("jdepend:html" => xml_task) do
|
160
|
+
puts "JDepend: Generating report"
|
161
|
+
mkdir_p File.dirname(project.jdepend.html_output_file)
|
162
|
+
Buildr.ant "jdepend" do |ant|
|
163
|
+
ant.xslt :in => project.jdepend.xml_output_file,
|
164
|
+
:out => project.jdepend.html_output_file,
|
165
|
+
:style => project.jdepend.style_file
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
class Buildr::Project
|
177
|
+
include Buildr::JDepend::ProjectExtension
|
178
|
+
end
|
data/addon/buildr/nailgun.rb
CHANGED
@@ -49,7 +49,7 @@ module Buildr
|
|
49
49
|
|
50
50
|
# Returns the path to JRUBY_HOME.
|
51
51
|
def jruby_home
|
52
|
-
ENV['JRUBY_HOME'] ||
|
52
|
+
ENV['JRUBY_HOME'] || RbConfig::CONFIG['prefix']
|
53
53
|
end
|
54
54
|
|
55
55
|
# Returns the path to NAILGUN_HOME.
|
@@ -164,7 +164,7 @@ module Buildr
|
|
164
164
|
attr_reader :artifact
|
165
165
|
@artifact = Buildr.artifact(ARTIFACT_SPEC).from(nailgun_jar)
|
166
166
|
|
167
|
-
compiled_bin = file(tmp_path(NAME, NAME, 'ng' +
|
167
|
+
compiled_bin = file(tmp_path(NAME, NAME, 'ng' + RbConfig::CONFIG['EXEEXT']) => dist_dir.target) do |task|
|
168
168
|
unless task.to_s.pathmap('%x') == '.exe'
|
169
169
|
Dir.chdir(task.to_s.pathmap('%d')) do
|
170
170
|
info "Compiling #{task.to_s}"
|
@@ -54,13 +54,15 @@ module Buildr
|
|
54
54
|
def cpd(format, output_file_prefix, source_paths, options = {})
|
55
55
|
dependencies = (options[:dependencies] || []) + self.dependencies
|
56
56
|
cp = Buildr.artifacts(dependencies).each(&:invoke).map(&:to_s)
|
57
|
+
minimum_token_count = options[:minimum_token_count] || 100
|
58
|
+
encoding = options[:encoding] || 'UTF-8'
|
57
59
|
|
58
60
|
puts "PMD-CPD: Analyzing source code..."
|
59
61
|
mkdir_p File.dirname(output_file_prefix)
|
60
62
|
|
61
63
|
Buildr.ant("cpd-report") do |ant|
|
62
64
|
ant.taskdef :name=> 'cpd', :classpath => cp.join(';'), :classname => 'net.sourceforge.pmd.cpd.CPDTask'
|
63
|
-
ant.cpd :format => format, :minimumTokenCount =>
|
65
|
+
ant.cpd :format => format, :minimumTokenCount => minimum_token_count, :encoding => encoding, :outputFile => "#{output_file_prefix}.#{format}" do
|
64
66
|
source_paths.each do |src|
|
65
67
|
ant.fileset :dir=> src, :includes=>'**/*.java'
|
66
68
|
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
module Buildr
|
17
|
+
module Sonar
|
18
|
+
|
19
|
+
class << self
|
20
|
+
|
21
|
+
# The specs for requirements
|
22
|
+
def dependencies
|
23
|
+
[
|
24
|
+
'org.codehaus.sonar-plugins:sonar-ant-task:jar:1.3'
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
def sonar(jdbc_url, jdbc_driver_class_name, jdbc_username, jdbc_password, host_url, project_name, key, sources, binaries, libraries)
|
29
|
+
|
30
|
+
# Build the artifacts for FindBugs to analyse
|
31
|
+
Buildr.artifacts(binaries).each(&:invoke)
|
32
|
+
|
33
|
+
cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s).join(File::PATH_SEPARATOR)
|
34
|
+
|
35
|
+
args = {
|
36
|
+
:key => key,
|
37
|
+
:version => '1',
|
38
|
+
'xmlns:sonar' => 'antlib:org.sonar.ant'
|
39
|
+
}
|
40
|
+
|
41
|
+
Buildr.ant('sonar') do |ant|
|
42
|
+
ant.taskdef :name => 'sonar', :classname => 'org.sonar.ant.SonarTask', :classpath => cp
|
43
|
+
|
44
|
+
ant.property :name => 'sonar.projectName', :value => project_name
|
45
|
+
|
46
|
+
ant.property :name => 'sonar.jdbc.url', :value => jdbc_url
|
47
|
+
ant.property :name => 'sonar.jdbc.driverClassName', :value => jdbc_driver_class_name
|
48
|
+
ant.property :name => 'sonar.jdbc.username', :value => jdbc_username
|
49
|
+
ant.property :name => 'sonar.jdbc.password', :value => jdbc_password
|
50
|
+
ant.property :name => 'sonar.host.url', :value => host_url
|
51
|
+
|
52
|
+
ant.property :name => 'sonar.checkstyle.generateXml', :value => 'true'
|
53
|
+
|
54
|
+
ant.property :name => 'sonar.sources', :value => sources.join(',')
|
55
|
+
ant.property :name => 'sonar.binaries', :value => binaries.join(',')
|
56
|
+
ant.property :name => 'sonar.libraries', :value => libraries.join(',')
|
57
|
+
|
58
|
+
ant.sonar args
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class Config
|
65
|
+
|
66
|
+
attr_accessor :enabled
|
67
|
+
attr_accessor :jdbc_url
|
68
|
+
attr_accessor :jdbc_driver_class_name
|
69
|
+
attr_accessor :jdbc_username
|
70
|
+
attr_accessor :jdbc_password
|
71
|
+
attr_accessor :host_url
|
72
|
+
attr_accessor :key
|
73
|
+
attr_accessor :project_name
|
74
|
+
|
75
|
+
attr_writer :sources
|
76
|
+
def sources
|
77
|
+
@sources ||= []
|
78
|
+
end
|
79
|
+
|
80
|
+
attr_writer :binaries
|
81
|
+
def binaries
|
82
|
+
@binaries ||= []
|
83
|
+
end
|
84
|
+
|
85
|
+
attr_writer :libraries
|
86
|
+
def libraries
|
87
|
+
@libraries ||= []
|
88
|
+
end
|
89
|
+
|
90
|
+
def enabled?
|
91
|
+
!!@enabled
|
92
|
+
end
|
93
|
+
|
94
|
+
protected
|
95
|
+
|
96
|
+
def initialize(project)
|
97
|
+
@project = project
|
98
|
+
end
|
99
|
+
|
100
|
+
attr_reader :project
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
module ProjectExtension
|
105
|
+
include Extension
|
106
|
+
|
107
|
+
def sonar
|
108
|
+
@sonar ||= Buildr::Sonar::Config.new(project)
|
109
|
+
end
|
110
|
+
|
111
|
+
after_define do |project|
|
112
|
+
if project.sonar.enabled?
|
113
|
+
desc 'Execute Sonar code analysis'
|
114
|
+
project.task('sonar') do
|
115
|
+
puts 'Sonar: Analyzing source code...'
|
116
|
+
|
117
|
+
sources = project.sonar.sources.flatten.compact
|
118
|
+
binaries = project.sonar.binaries.flatten.compact
|
119
|
+
libraries = project.sonar.libraries.flatten.compact
|
120
|
+
|
121
|
+
Buildr::Sonar.sonar(
|
122
|
+
project.sonar.jdbc_url,
|
123
|
+
project.sonar.jdbc_driver_class_name,
|
124
|
+
project.sonar.jdbc_username,
|
125
|
+
project.sonar.jdbc_password,
|
126
|
+
project.sonar.host_url,
|
127
|
+
project.sonar.project_name,
|
128
|
+
project.sonar.key,
|
129
|
+
sources,
|
130
|
+
binaries,
|
131
|
+
libraries
|
132
|
+
)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class Buildr::Project
|
141
|
+
include Buildr::Sonar::ProjectExtension
|
142
|
+
end
|