buildr 1.4.1-x86-mswin32 → 1.4.2-x86-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +68 -11
- data/_buildr +2 -0
- data/addon/buildr/hibernate.rb +8 -5
- data/addon/buildr/jetty.rb +1 -1
- data/addon/buildr/openjpa.rb +0 -2
- data/addon/buildr/xmlbeans.rb +1 -1
- data/buildr.gemspec +13 -9
- data/doc/_layouts/default.html +3 -1
- data/doc/contributing.textile +10 -2
- data/doc/css/default.css +6 -6
- data/doc/download.textile +7 -7
- data/doc/languages.textile +2 -2
- data/doc/more_stuff.textile +41 -33
- data/doc/packaging.textile +6 -3
- data/doc/releasing.textile +116 -0
- data/doc/scripts/install-linux.sh +7 -6
- data/doc/testing.textile +14 -0
- data/lib/buildr.rb +2 -2
- data/lib/buildr/core.rb +0 -6
- data/lib/buildr/core/application.rb +25 -2
- data/lib/buildr/core/build.rb +66 -15
- data/lib/buildr/core/compile.rb +10 -1
- data/lib/buildr/core/filter.rb +1 -1
- data/lib/buildr/core/progressbar.rb +8 -3
- data/lib/buildr/core/test.rb +57 -6
- data/lib/buildr/core/transports.rb +18 -13
- data/lib/buildr/core/util.rb +19 -3
- data/lib/buildr/groovy/compiler.rb +2 -2
- data/lib/buildr/ide/eclipse.rb +32 -12
- data/lib/buildr/java/ant.rb +3 -3
- data/lib/buildr/java/bdd.rb +1 -2
- data/lib/buildr/java/cobertura.rb +10 -9
- data/lib/buildr/java/commands.rb +22 -21
- data/lib/buildr/java/compiler.rb +2 -2
- data/lib/buildr/java/doc.rb +1 -1
- data/lib/buildr/java/ecj.rb +71 -0
- data/lib/buildr/java/emma.rb +1 -1
- data/lib/buildr/java/external.rb +9 -9
- data/lib/buildr/java/jruby.rb +5 -0
- data/lib/buildr/java/packaging.rb +4 -3
- data/lib/buildr/java/rjb.rb +4 -6
- data/lib/buildr/java/tests.rb +9 -4
- data/lib/buildr/packaging/archive.rb +7 -3
- data/lib/buildr/packaging/artifact.rb +153 -38
- data/lib/buildr/packaging/gems.rb +2 -3
- data/lib/buildr/packaging/package.rb +19 -12
- data/lib/buildr/packaging/tar.rb +1 -1
- data/lib/buildr/packaging/ziptask.rb +1 -1
- data/lib/buildr/scala/bdd.rb +7 -3
- data/lib/buildr/scala/compiler.rb +2 -2
- data/lib/buildr/scala/doc.rb +3 -3
- data/lib/buildr/scala/tests.rb +7 -3
- data/lib/buildr/version.rb +18 -0
- data/rakelib/all-in-one.rake +1 -1
- data/rakelib/doc.rake +13 -3
- data/rakelib/metrics.rake +39 -0
- data/spec/core/application_spec.rb +13 -12
- data/spec/core/build_spec.rb +166 -7
- data/spec/core/cc_spec.rb +1 -1
- data/spec/core/checks_spec.rb +1 -1
- data/spec/core/common_spec.rb +10 -1
- data/spec/core/compile_spec.rb +1 -1
- data/spec/core/extension_spec.rb +1 -1
- data/spec/core/generate_spec.rb +1 -1
- data/spec/core/project_spec.rb +1 -1
- data/spec/core/test_spec.rb +124 -11
- data/spec/core/transport_spec.rb +10 -3
- data/spec/core/util_spec.rb +18 -2
- data/spec/groovy/bdd_spec.rb +1 -1
- data/spec/groovy/compiler_spec.rb +3 -3
- data/spec/ide/eclipse_spec.rb +63 -1
- data/spec/ide/idea7x_spec.rb +1 -1
- data/spec/java/ant_spec.rb +1 -1
- data/spec/java/bdd_spec.rb +1 -1
- data/spec/java/cobertura_spec.rb +29 -2
- data/spec/java/commands_spec.rb +61 -2
- data/spec/java/compiler_spec.rb +3 -3
- data/spec/java/ecj_spec.rb +115 -0
- data/spec/java/emma_spec.rb +1 -1
- data/spec/java/external_spec.rb +10 -8
- data/spec/java/java_spec.rb +14 -6
- data/spec/java/packaging_spec.rb +41 -15
- data/spec/java/test_coverage_helper.rb +1 -1
- data/spec/java/tests_spec.rb +1 -1
- data/spec/packaging/archive_spec.rb +12 -1
- data/spec/packaging/artifact_namespace_spec.rb +1 -1
- data/spec/packaging/artifact_spec.rb +197 -7
- data/spec/packaging/packaging_spec.rb +12 -12
- data/spec/sandbox.rb +8 -3
- data/spec/scala/bdd_spec.rb +3 -3
- data/spec/scala/compiler_spec.rb +7 -7
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +3 -3
- data/spec/spec_helpers.rb +11 -1
- data/spec/version_requirement_spec.rb +1 -1
- metadata +220 -85
- data/rakelib/jekylltask.rb +0 -120
data/lib/buildr/core/filter.rb
CHANGED
@@ -188,9 +188,9 @@ module Buildr
|
|
188
188
|
File.open(dest, 'wb') { |file| file.write mapped }
|
189
189
|
else # no mapping
|
190
190
|
cp source, dest
|
191
|
-
File.chmod(0664, dest)
|
192
191
|
end
|
193
192
|
end
|
193
|
+
File.chmod(File.stat(source).mode | 0200, dest)
|
194
194
|
end
|
195
195
|
touch target.to_s
|
196
196
|
true
|
@@ -23,7 +23,7 @@ class ProgressBar
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def width
|
26
|
-
@width ||= $terminal.output_cols ||
|
26
|
+
@width ||= $terminal.output_cols || 0
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
@@ -66,6 +66,7 @@ class ProgressBar
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def title
|
69
|
+
return @title if ProgressBar.width <= 10
|
69
70
|
@title.size > ProgressBar.width / 5 ? (@title[0, ProgressBar.width / 5 - 2] + '..') : @title
|
70
71
|
end
|
71
72
|
|
@@ -126,7 +127,7 @@ class ProgressBar
|
|
126
127
|
protected
|
127
128
|
|
128
129
|
def clear
|
129
|
-
return
|
130
|
+
return if @output == nil || ProgressBar.width <= 0
|
130
131
|
@output.print "\r", " " * (ProgressBar.width - 1), "\r"
|
131
132
|
@output.flush
|
132
133
|
end
|
@@ -135,7 +136,11 @@ protected
|
|
135
136
|
return unless @output
|
136
137
|
format, *args = @format
|
137
138
|
line = format % args.map { |arg| send(arg) }
|
138
|
-
|
139
|
+
if ProgressBar.width >= line.size
|
140
|
+
@output.print line.sub('|--|') { progress(ProgressBar.width - line.size + 3) }
|
141
|
+
else
|
142
|
+
@output.print line.sub('|--|', '')
|
143
|
+
end
|
139
144
|
@output.print @finished ? "\n" : "\r"
|
140
145
|
@output.flush
|
141
146
|
@previous = @count
|
data/lib/buildr/core/test.rb
CHANGED
@@ -171,7 +171,7 @@ module Buildr
|
|
171
171
|
|
172
172
|
# Used by the test/integration rule to only run tests that match the specified names.
|
173
173
|
def only_run(tests) #:nodoc:
|
174
|
-
tests = tests
|
174
|
+
tests = wildcardify(tests)
|
175
175
|
# Since the tests may reside in a sub-project, we need to set the include/exclude pattern on
|
176
176
|
# all sub-projects, but only invoke test on the local project.
|
177
177
|
Project.projects.each { |project| project.test.send :only_run, tests }
|
@@ -183,6 +183,37 @@ module Buildr
|
|
183
183
|
# all sub-projects, but only invoke test on the local project.
|
184
184
|
Project.projects.each { |project| project.test.send :only_run_failed }
|
185
185
|
end
|
186
|
+
|
187
|
+
# Used by the test/integration rule to clear all previously included/excluded tests.
|
188
|
+
def clear()
|
189
|
+
Project.projects.each do |project|
|
190
|
+
project.test.send :clear
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
# Used by the test/integration to include specific tests
|
195
|
+
def include(includes)
|
196
|
+
Project.projects.each do |project|
|
197
|
+
includes = wildcardify(includes)
|
198
|
+
project.test.send :include, *includes if includes.size > 0
|
199
|
+
project.test.send :forced_need=, true
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
# Used by the test/integration to exclude specific tests
|
204
|
+
def exclude(excludes)
|
205
|
+
Project.projects.each do |project|
|
206
|
+
excludes = wildcardify(excludes)
|
207
|
+
project.test.send :exclude, *excludes if excludes.size > 0
|
208
|
+
project.test.send :forced_need=, true
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
private
|
213
|
+
|
214
|
+
def wildcardify(strings)
|
215
|
+
strings.map { |name| name =~ /\*/ ? name : "*#{name}*" }
|
216
|
+
end
|
186
217
|
end
|
187
218
|
|
188
219
|
# Default options already set on each test task.
|
@@ -367,6 +398,13 @@ module Buildr
|
|
367
398
|
self
|
368
399
|
end
|
369
400
|
|
401
|
+
# Clear all test includes and excludes and returns self
|
402
|
+
def clear
|
403
|
+
@include = []
|
404
|
+
@exclude = []
|
405
|
+
self
|
406
|
+
end
|
407
|
+
|
370
408
|
# *Deprecated*: Use tests instead.
|
371
409
|
def classes
|
372
410
|
Buildr.application.deprecated 'Call tests instead of classes'
|
@@ -423,7 +461,7 @@ module Buildr
|
|
423
461
|
# We read the last test failures if any and return them.
|
424
462
|
#
|
425
463
|
def last_failures
|
426
|
-
@last_failures ||= failures_to.exist? ? File.read(failures_to.to_s).split(
|
464
|
+
@last_failures ||= failures_to.exist? ? File.read(failures_to.to_s).split("\n") : []
|
427
465
|
end
|
428
466
|
|
429
467
|
# The path to the file that stores the time stamp of the last successful test run.
|
@@ -439,6 +477,9 @@ module Buildr
|
|
439
477
|
# The project this task belongs to.
|
440
478
|
attr_reader :project
|
441
479
|
|
480
|
+
# Whether the tests are forced
|
481
|
+
attr_accessor :forced_need
|
482
|
+
|
442
483
|
protected
|
443
484
|
|
444
485
|
def associate_with(project)
|
@@ -460,7 +501,7 @@ module Buildr
|
|
460
501
|
# Returns true if the specified test name matches the inclusion/exclusion pattern. Used to determine
|
461
502
|
# which tests to execute.
|
462
503
|
def include?(name)
|
463
|
-
(@include.empty? || @include.any? { |pattern| File.fnmatch(pattern, name) }) &&
|
504
|
+
((@include.empty? && !@forced_need)|| @include.any? { |pattern| File.fnmatch(pattern, name) }) &&
|
464
505
|
!@exclude.any? { |pattern| File.fnmatch(pattern, name) }
|
465
506
|
end
|
466
507
|
|
@@ -480,7 +521,7 @@ module Buildr
|
|
480
521
|
@passed_tests = @framework.run(@tests, dependencies)
|
481
522
|
rescue Exception=>ex
|
482
523
|
error "Test framework error: #{ex.message}"
|
483
|
-
error ex.backtrace.join("\n") if
|
524
|
+
error ex.backtrace.join("\n") if trace?
|
484
525
|
@passed_tests = []
|
485
526
|
end
|
486
527
|
@failed_tests = @tests - @passed_tests
|
@@ -509,7 +550,6 @@ module Buildr
|
|
509
550
|
# Limit running tests to those who failed the last time.
|
510
551
|
def only_run_failed()
|
511
552
|
@include = Array(last_failures)
|
512
|
-
@exclude.clear
|
513
553
|
@forced_need = true
|
514
554
|
end
|
515
555
|
|
@@ -597,7 +637,18 @@ module Buildr
|
|
597
637
|
# (* and ?) patterns to match multiple tests, see the TestTask#include method.
|
598
638
|
rule /^test:.*$/ do |task|
|
599
639
|
# The map works around a JRuby bug whereby the string looks fine, but fails in fnmatch.
|
600
|
-
|
640
|
+
tests = task.name.scan(/test:(.*)/)[0][0].split(',').map(&:to_s)
|
641
|
+
excludes, includes = tests.partition { |t| t =~ /^-/ }
|
642
|
+
if excludes.empty?
|
643
|
+
TestTask.only_run includes
|
644
|
+
else
|
645
|
+
# remove leading '-'
|
646
|
+
excludes.map! { |t| t[1..-1] }
|
647
|
+
|
648
|
+
TestTask.clear
|
649
|
+
TestTask.include(includes.empty? ? '*' : includes)
|
650
|
+
TestTask.exclude excludes
|
651
|
+
end
|
601
652
|
task('test').invoke
|
602
653
|
end
|
603
654
|
|
@@ -396,25 +396,23 @@ module URI
|
|
396
396
|
ssh_options[:password] ||= SFTP.passwords[host]
|
397
397
|
begin
|
398
398
|
trace "Connecting to #{host}"
|
399
|
-
|
399
|
+
if block
|
400
|
+
result = nil
|
401
|
+
else
|
402
|
+
result = ''
|
403
|
+
block = lambda { |chunk| result << chunk }
|
404
|
+
end
|
400
405
|
Net::SFTP.start(host, user, ssh_options) do |sftp|
|
401
406
|
SFTP.passwords[host] = ssh_options[:password]
|
402
407
|
trace 'connected'
|
403
408
|
|
404
409
|
with_progress_bar options[:progress] && options[:size], path.split('/'), options[:size] || 0 do |progress|
|
405
|
-
trace "Downloading
|
410
|
+
trace "Downloading from #{path}"
|
406
411
|
sftp.file.open(path, 'r') do |file|
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
end
|
412
|
-
else
|
413
|
-
result = ''
|
414
|
-
while chunk = file.read(RW_CHUNK_SIZE)
|
415
|
-
result << chunk
|
416
|
-
progress << chunk
|
417
|
-
end
|
412
|
+
while chunk = file.read(RW_CHUNK_SIZE)
|
413
|
+
block.call chunk
|
414
|
+
progress << chunk
|
415
|
+
break if chunk.size < RW_CHUNK_SIZE
|
418
416
|
end
|
419
417
|
end
|
420
418
|
end
|
@@ -486,6 +484,13 @@ module URI
|
|
486
484
|
|
487
485
|
COMPONENT = [ :host, :path ].freeze
|
488
486
|
|
487
|
+
def upload(source, options = nil)
|
488
|
+
super
|
489
|
+
if File === source then
|
490
|
+
File.chmod(source.stat.mode, real_path)
|
491
|
+
end
|
492
|
+
end
|
493
|
+
|
489
494
|
def initialize(*args)
|
490
495
|
super
|
491
496
|
# file:something (opaque) becomes file:///something
|
data/lib/buildr/core/util.rb
CHANGED
@@ -54,7 +54,7 @@ module Buildr
|
|
54
54
|
def ruby(*args)
|
55
55
|
options = Hash === args.last ? args.pop : {}
|
56
56
|
cmd = []
|
57
|
-
ruby_bin = File.
|
57
|
+
ruby_bin = File.normalize_path(Config::CONFIG['ruby_install_name'], Config::CONFIG['bindir'])
|
58
58
|
if options.delete(:sudo) && !(win_os? || Process.uid == File.stat(ruby_bin).uid)
|
59
59
|
cmd << 'sudo' << '-u' << "##{File.stat(ruby_bin).uid}"
|
60
60
|
end
|
@@ -115,6 +115,22 @@ module Buildr
|
|
115
115
|
FileList[dirs.map { |dir| File.join(dir, '/**/{*,.*}') }].reject { |file| File.basename(file) =~ /^[.]{1,2}$/ }
|
116
116
|
end
|
117
117
|
|
118
|
+
# :call-seq:
|
119
|
+
# replace_extension(filename) => filename_with_updated_extension
|
120
|
+
#
|
121
|
+
# Replace the file extension, e.g.,
|
122
|
+
# replace_extension("foo.zip", "txt") => "foo.txt"
|
123
|
+
def replace_extension(filename, new_ext)
|
124
|
+
ext = File.extname(filename)
|
125
|
+
if filename =~ /\.$/
|
126
|
+
filename + new_ext
|
127
|
+
elsif ext == ""
|
128
|
+
filename + "." + new_ext
|
129
|
+
else
|
130
|
+
filename[0..-ext.length] + new_ext
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
118
134
|
# Utility methods for running gem commands
|
119
135
|
module Gems #:nodoc:
|
120
136
|
extend self
|
@@ -126,8 +142,8 @@ module Buildr
|
|
126
142
|
# is not running interactively (on a tty)
|
127
143
|
def install(*dependencies)
|
128
144
|
raise ArgumentError, "Expected at least one argument" if dependencies.empty?
|
129
|
-
remote = dependencies.map
|
130
|
-
not_found_deps, to_install = remote.partition { |gem| gem.is_a?(Gem::Dependency) }
|
145
|
+
remote = dependencies.map{ |dep| Gem.source_index.search(dep).last || Gem::SpecFetcher.fetcher.fetch( dep, true ).map{ |spec, source| spec }.last }
|
146
|
+
not_found_deps, to_install = remote.partition { |gem| gem.is_a?(Gem::Dependency) || gem.nil? }
|
131
147
|
fail Gem::LoadError, "Build requires the gems #{not_found_deps.join(', ')}, which cannot be found in local or remote repository." unless not_found_deps.empty?
|
132
148
|
uses = "This build requires the gems #{to_install.map(&:full_name).join(', ')}:"
|
133
149
|
fail Gem::LoadError, "#{uses} to install, run Buildr interactively." unless $stdout.isatty
|
@@ -53,7 +53,7 @@ module Buildr::Groovy
|
|
53
53
|
# The groovyc compiler jars are added to classpath at load time,
|
54
54
|
# if you want to customize artifact versions, you must set them on the
|
55
55
|
#
|
56
|
-
# artifact_ns
|
56
|
+
# artifact_ns(Buildr::Groovy::Groovyc).groovy = '1.7.1'
|
57
57
|
#
|
58
58
|
# namespace before this file is required.
|
59
59
|
REQUIRES = ArtifactNamespace.for(self) do |ns|
|
@@ -95,7 +95,7 @@ module Buildr::Groovy
|
|
95
95
|
options[:debug] = Buildr.options.debug if options[:debug].nil?
|
96
96
|
options[:deprecation] ||= false
|
97
97
|
options[:optimise] ||= false
|
98
|
-
options[:verbose] ||=
|
98
|
+
options[:verbose] ||= trace?(:groovyc) if options[:verbose].nil?
|
99
99
|
options[:warnings] = verbose if options[:warnings].nil?
|
100
100
|
options[:javac] = OpenObject.new if options[:javac].nil?
|
101
101
|
end
|
data/lib/buildr/ide/eclipse.rb
CHANGED
@@ -25,14 +25,21 @@ module Buildr
|
|
25
25
|
class Eclipse
|
26
26
|
|
27
27
|
attr_reader :options
|
28
|
+
attr_writer :name
|
28
29
|
|
29
30
|
def initialize(project)
|
30
31
|
@project = project
|
31
32
|
@options = Options.new(project)
|
32
33
|
end
|
33
34
|
|
35
|
+
def name
|
36
|
+
return @name if @name
|
37
|
+
return @project.id.split('-').last if @options.short_names
|
38
|
+
@project.id
|
39
|
+
end
|
40
|
+
|
34
41
|
# :call-seq:
|
35
|
-
# classpath_variables
|
42
|
+
# classpath_variables :VAR => '/path/to/location'
|
36
43
|
# Sets classpath variables to be used for library path substitution
|
37
44
|
# on the project.
|
38
45
|
#
|
@@ -156,7 +163,7 @@ module Buildr
|
|
156
163
|
|
157
164
|
class Options
|
158
165
|
|
159
|
-
attr_writer :m2_repo_var
|
166
|
+
attr_writer :m2_repo_var, :short_names
|
160
167
|
|
161
168
|
def initialize(project)
|
162
169
|
@project = project
|
@@ -173,6 +180,10 @@ module Buildr
|
|
173
180
|
@m2_repo_var || (@project.parent ? @project.parent.eclipse.options.m2_repo_var : 'M2_REPO')
|
174
181
|
end
|
175
182
|
end
|
183
|
+
|
184
|
+
def short_names
|
185
|
+
@short_names || (@project.parent ? @project.parent.eclipse.options.short_names : false)
|
186
|
+
end
|
176
187
|
end
|
177
188
|
|
178
189
|
def eclipse
|
@@ -265,7 +276,7 @@ module Buildr
|
|
265
276
|
File.open(task.name, 'w') do |file|
|
266
277
|
xml = Builder::XmlMarkup.new(:target=>file, :indent=>2)
|
267
278
|
xml.projectDescription do
|
268
|
-
xml.name project.
|
279
|
+
xml.name project.eclipse.name
|
269
280
|
xml.projects
|
270
281
|
unless project.eclipse.builders.empty?
|
271
282
|
xml.buildSpec do
|
@@ -330,8 +341,8 @@ module Buildr
|
|
330
341
|
# Write a classpathentry of kind 'src' for dependent projects.
|
331
342
|
# Accept an array of projects.
|
332
343
|
def src_projects project_libs
|
333
|
-
project_libs.map
|
334
|
-
@xml.classpathentry :kind=>'src', :combineaccessrules=>'false', :path=>"/#{
|
344
|
+
project_libs.map { |project| project.eclipse.name }.sort.uniq.each do |eclipse_name|
|
345
|
+
@xml.classpathentry :kind=>'src', :combineaccessrules=>'false', :path=>"/#{eclipse_name}"
|
335
346
|
end
|
336
347
|
end
|
337
348
|
|
@@ -347,18 +358,27 @@ module Buildr
|
|
347
358
|
def var(libs)
|
348
359
|
libs.each do |lib_path, var_name, var_value|
|
349
360
|
lib_artifact = file(lib_path)
|
350
|
-
|
361
|
+
|
362
|
+
attribs = { :kind => 'var', :path => lib_path }
|
363
|
+
|
351
364
|
if lib_artifact.respond_to? :sources_artifact
|
352
|
-
|
353
|
-
relative_source_path = source_path.sub(var_value, var_name)
|
354
|
-
@xml.classpathentry :kind=>'var', :path=>relative_lib_path, :sourcepath=>relative_source_path
|
355
|
-
else
|
356
|
-
@xml.classpathentry :kind=>'var', :path=>relative_lib_path
|
365
|
+
attribs[:sourcepath] = lib_artifact.sources_artifact
|
357
366
|
end
|
367
|
+
|
368
|
+
if lib_artifact.respond_to? :javadoc_artifact
|
369
|
+
attribs[:javadocpath] = lib_artifact.javadoc_artifact
|
370
|
+
end
|
371
|
+
|
372
|
+
# make all paths relative
|
373
|
+
attribs.each_key do |k|
|
374
|
+
attribs[k] = attribs[k].to_s.sub(var_value, var_name.to_s) if k.to_s =~ /path/
|
375
|
+
end
|
376
|
+
|
377
|
+
@xml.classpathentry attribs
|
358
378
|
end
|
359
379
|
end
|
360
380
|
|
361
|
-
|
381
|
+
private
|
362
382
|
|
363
383
|
# Find a path relative to the project's root directory if possible. If the
|
364
384
|
# two paths do not share the same root the absolute path is returned. This
|
data/lib/buildr/java/ant.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
gem 'Antwrap'
|
17
|
+
gem 'atoulme-Antwrap'
|
18
18
|
autoload :Antwrap, 'antwrap'
|
19
19
|
autoload :Logger, 'logger'
|
20
20
|
require 'buildr/core/project'
|
@@ -69,12 +69,12 @@ module Buildr
|
|
69
69
|
# end
|
70
70
|
def ant(name, &block)
|
71
71
|
options = { :name=>name, :basedir=>Dir.pwd, :declarative=>true }
|
72
|
-
options.merge!(:logger=> Logger.new(STDOUT), :loglevel=> Logger::DEBUG) if
|
72
|
+
options.merge!(:logger=> Logger.new(STDOUT), :loglevel=> Logger::DEBUG) if trace?(:ant)
|
73
73
|
Java.load
|
74
74
|
Antwrap::AntProject.new(options).tap do |project|
|
75
75
|
# Set Ant logging level to debug (--trace), info (default) or error only (--quiet).
|
76
76
|
project.project.getBuildListeners().get(0).
|
77
|
-
setMessageOutputLevel((
|
77
|
+
setMessageOutputLevel((trace?(:ant) && 4) || (verbose && 2) || 0)
|
78
78
|
yield project if block_given?
|
79
79
|
end
|
80
80
|
end
|
data/lib/buildr/java/bdd.rb
CHANGED
@@ -48,7 +48,7 @@ module Buildr
|
|
48
48
|
module TestFramework::JRubyBased
|
49
49
|
extend self
|
50
50
|
|
51
|
-
VERSION = '1.5.
|
51
|
+
VERSION = '1.5.2'
|
52
52
|
|
53
53
|
class << self
|
54
54
|
def version
|
@@ -177,7 +177,6 @@ module Buildr
|
|
177
177
|
Kernel.send :gem, name, version
|
178
178
|
rescue LoadError, Gem::LoadError => e
|
179
179
|
require 'rubygems/gem_runner'
|
180
|
-
Gem.manage_gems
|
181
180
|
args = ['install', name, '--version', version] + args
|
182
181
|
Gem::GemRunner.new.run(args)
|
183
182
|
Kernel.send :gem, name, version
|
@@ -223,8 +223,7 @@ module Buildr
|
|
223
223
|
|
224
224
|
task :check => [:instrument, :test] do
|
225
225
|
Buildr.ant "cobertura" do |ant|
|
226
|
-
ant.taskdef :classpath=>Cobertura.
|
227
|
-
|
226
|
+
ant.taskdef :classpath=>Cobertura.dependencies.join(File::PATH_SEPARATOR), :resource=>"tasks.properties"
|
228
227
|
params = { :datafile => Cobertura.data_file }
|
229
228
|
|
230
229
|
# oh so ugly...
|
@@ -270,13 +269,15 @@ module Buildr
|
|
270
269
|
report_target = report_to(format)
|
271
270
|
desc "Run the test cases and produce code coverage reports in #{report_target}"
|
272
271
|
task format => ["instrument", "test"] do
|
273
|
-
|
274
|
-
|
275
|
-
ant
|
276
|
-
:
|
277
|
-
|
278
|
-
|
279
|
-
|
272
|
+
if Buildr.projects.detect { |project| !project.compile.sources.empty? }
|
273
|
+
info "Creating test coverage reports in #{report_target}"
|
274
|
+
Buildr.ant "cobertura" do |ant|
|
275
|
+
ant.taskdef :resource=>"tasks.properties",
|
276
|
+
:classpath=>Buildr.artifacts(Cobertura.dependencies).each(&:invoke).map(&:to_s).join(File::PATH_SEPARATOR)
|
277
|
+
ant.send "cobertura-report", :destdir=>report_target, :format=>format, :datafile=>data_file do
|
278
|
+
Buildr.projects.map(&:cobertura).map(&:sources).flatten.each do |src|
|
279
|
+
ant.fileset :dir=>src.to_s if File.exist?(src.to_s)
|
280
|
+
end
|
280
281
|
end
|
281
282
|
end
|
282
283
|
end
|