buildr 1.4.1-x86-mswin32 → 1.4.2-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- 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
|