buildr 1.4.6-x86-mswin32 → 1.4.7-x86-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +81 -0
- data/Rakefile +5 -2
- data/addon/buildr/antlr.rb +0 -4
- data/addon/buildr/bnd.rb +3 -1
- data/addon/buildr/checkstyle.rb +201 -0
- data/addon/buildr/cobertura.rb +0 -1
- data/addon/buildr/drb.rb +0 -2
- data/addon/buildr/emma.rb +0 -1
- data/addon/buildr/findbugs.rb +227 -0
- data/addon/buildr/gwt.rake +82 -0
- data/addon/buildr/hibernate.rb +0 -4
- data/addon/buildr/javacc.rb +0 -4
- data/addon/buildr/javancss.rb +155 -0
- data/addon/buildr/jdepend.rb +138 -24
- data/addon/buildr/jdepend.rb.orig +178 -0
- data/addon/buildr/jetty.rb +0 -5
- data/addon/buildr/jibx.rb +85 -86
- data/addon/buildr/nailgun.rb +2 -2
- data/addon/buildr/openjpa.rb +0 -4
- data/addon/buildr/pmd.rb +166 -0
- data/addon/buildr/protobuf.rb +0 -1
- data/addon/buildr/sonar.rb +142 -0
- data/addon/buildr/xmlbeans.rb +0 -5
- data/buildr.gemspec +36 -21
- data/doc/_layouts/default.html +1 -0
- data/doc/contributing.textile +11 -2
- data/doc/download.textile +17 -5
- data/doc/index.textile +21 -46
- data/doc/installing.textile +18 -8
- data/doc/installing.textile.orig +282 -0
- data/doc/languages.textile +0 -38
- data/doc/more_stuff.textile +199 -12
- data/doc/more_stuff.textile.orig +1004 -0
- data/doc/packaging.textile +10 -0
- data/doc/settings_profiles.textile +2 -2
- data/etc/KEYS +44 -0
- data/lib/buildr.rb +67 -4
- data/lib/buildr/clojure.rb +0 -2
- data/lib/buildr/core/application.rb +23 -32
- data/lib/buildr/core/build.rb +0 -7
- data/lib/buildr/core/cc.rb +0 -5
- data/lib/buildr/core/checks.rb +0 -4
- data/lib/buildr/core/common.rb +0 -5
- data/lib/buildr/core/compile.rb +5 -10
- data/lib/buildr/core/doc.rb +9 -3
- data/lib/buildr/core/environment.rb +0 -1
- data/lib/buildr/core/filter.rb +0 -5
- data/lib/buildr/core/generate.rb +2 -6
- data/lib/buildr/core/help.rb +1 -6
- data/lib/buildr/core/linux.rb +0 -1
- data/lib/buildr/core/osx.rb +0 -1
- data/lib/buildr/core/project.rb +0 -4
- data/lib/buildr/core/run.rb +1 -5
- data/lib/buildr/core/shell.rb +1 -6
- data/lib/buildr/core/test.rb +1 -7
- data/lib/buildr/core/transports.rb +4 -6
- data/lib/buildr/core/util.rb +2 -65
- data/lib/buildr/groovy/doc.rb +0 -3
- data/lib/buildr/groovy/shell.rb +0 -2
- data/lib/buildr/ide/eclipse.rb +4 -13
- data/lib/buildr/ide/eclipse/java.rb +0 -4
- data/lib/buildr/ide/eclipse/plugin.rb +0 -4
- data/lib/buildr/ide/eclipse/scala.rb +0 -4
- data/lib/buildr/ide/idea.rb +284 -52
- data/lib/buildr/java/ant.rb +2 -6
- data/lib/buildr/java/bdd.rb +5 -123
- data/lib/buildr/java/cobertura.rb +16 -10
- data/lib/buildr/java/commands.rb +33 -7
- data/lib/buildr/java/compiler.rb +0 -7
- data/lib/buildr/java/deprecated.rb +0 -4
- data/lib/buildr/java/doc.rb +0 -2
- data/lib/buildr/java/emma.rb +0 -4
- data/lib/buildr/java/jruby.rb +0 -2
- data/lib/buildr/java/packaging.rb +0 -4
- data/lib/buildr/java/pom.rb +24 -16
- data/lib/buildr/java/rjb.rb +1 -1
- data/lib/buildr/java/test_result.rb +1 -2
- data/lib/buildr/java/tests.rb +68 -6
- data/lib/buildr/packaging/archive.rb +0 -1
- data/lib/buildr/packaging/artifact.rb +19 -16
- data/lib/buildr/packaging/artifact_namespace.rb +51 -24
- data/lib/buildr/packaging/artifact_search.rb +1 -2
- data/lib/buildr/packaging/gems.rb +1 -13
- data/lib/buildr/packaging/package.rb +0 -6
- data/lib/buildr/packaging/tar.rb +2 -4
- data/lib/buildr/packaging/version_requirement.rb +1 -1
- data/lib/buildr/packaging/zip.rb +1 -2
- data/lib/buildr/packaging/ziptask.rb +0 -4
- data/lib/buildr/run.rb +3 -3
- data/lib/buildr/scala/bdd.rb +129 -11
- data/lib/buildr/scala/compiler.rb +53 -6
- data/lib/buildr/scala/doc.rb +6 -4
- data/lib/buildr/scala/org/apache/buildr/Specs2Runner.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/Specs2Runner.java +38 -0
- data/lib/buildr/scala/shell.rb +0 -4
- data/lib/buildr/scala/tests.rb +15 -6
- data/lib/buildr/shell.rb +0 -1
- data/lib/buildr/version.rb +1 -1
- data/rakelib/all-in-one.rake +20 -11
- data/rakelib/checks.rake +0 -31
- data/rakelib/doc.rake +86 -100
- data/rakelib/package.rake +3 -3
- data/rakelib/release.rake +1 -1
- data/rakelib/rspec.rake +23 -7
- data/rakelib/stage.rake +18 -21
- data/spec/addon/bnd_spec.rb +2 -2
- data/spec/addon/jaxb_xjc_spec.rb +5 -0
- data/spec/core/application_spec.rb +11 -64
- data/spec/core/cc_spec.rb +12 -5
- data/spec/core/compile_spec.rb +11 -0
- 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 +60 -0
- data/spec/java/bdd_spec.rb +8 -218
- data/spec/java/cobertura_spec.rb +4 -0
- data/spec/java/compiler_spec.rb +11 -8
- 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/java/tests_spec.rb +185 -0
- data/spec/packaging/archive_spec.rb +1 -1
- data/spec/packaging/artifact_namespace_spec.rb +15 -0
- data/spec/packaging/artifact_spec.rb +26 -1
- data/spec/sandbox.rb +7 -1
- data/spec/scala/bdd_spec.rb +111 -8
- data/spec/scala/tests_spec.rb +5 -1
- data/spec/spec_helpers.rb +9 -4
- data/spec/version_requirement_spec.rb +2 -0
- metadata +570 -505
- data/lib/buildr/core.rb +0 -34
- data/lib/buildr/ide.rb +0 -19
- data/lib/buildr/java.rb +0 -25
- data/lib/buildr/java/jtestr_result.rb +0 -331
- data/lib/buildr/java/jtestr_runner.rb.erb +0 -116
- data/lib/buildr/packaging.rb +0 -25
- data/rakelib/setup.rake +0 -68
data/lib/buildr/java/ant.rb
CHANGED
@@ -17,15 +17,12 @@
|
|
17
17
|
gem 'atoulme-Antwrap'
|
18
18
|
autoload :Antwrap, 'antwrap'
|
19
19
|
autoload :Logger, 'logger'
|
20
|
-
require 'buildr/core/project'
|
21
|
-
require 'buildr/core/help'
|
22
|
-
|
23
20
|
|
24
21
|
module Buildr
|
25
22
|
module Ant
|
26
23
|
|
27
24
|
# Which version of Ant we're using by default.
|
28
|
-
VERSION = '1.8.
|
25
|
+
VERSION = '1.8.3'
|
29
26
|
|
30
27
|
class << self
|
31
28
|
# Current version of Ant being used.
|
@@ -37,8 +34,7 @@ module Buildr
|
|
37
34
|
def dependencies
|
38
35
|
# Ant-Trax required for running the JUnitReport task, and there's no other place
|
39
36
|
# to put it but the root classpath.
|
40
|
-
@dependencies ||= ["org.apache.ant:ant:jar:#{version}", "org.apache.ant:ant-launcher:jar:#{version}"
|
41
|
-
"org.apache.ant:ant-trax:jar:#{version}"]
|
37
|
+
@dependencies ||= ["org.apache.ant:ant:jar:#{version}", "org.apache.ant:ant-launcher:jar:#{version}"]
|
42
38
|
end
|
43
39
|
|
44
40
|
private
|
data/lib/buildr/java/bdd.rb
CHANGED
@@ -13,10 +13,6 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
|
-
require 'buildr/java/tests'
|
18
|
-
require 'buildr/java/test_result'
|
19
|
-
|
20
16
|
module Buildr
|
21
17
|
|
22
18
|
# Mixin for test frameworks using src/spec/{lang}
|
@@ -47,7 +43,7 @@ module Buildr
|
|
47
43
|
module TestFramework::JRubyBased
|
48
44
|
extend self
|
49
45
|
|
50
|
-
VERSION = '1.
|
46
|
+
VERSION = '1.6.2'
|
51
47
|
|
52
48
|
class << self
|
53
49
|
def version
|
@@ -119,7 +115,7 @@ module Buildr
|
|
119
115
|
end
|
120
116
|
|
121
117
|
def jruby_home
|
122
|
-
@jruby_home ||= RUBY_PLATFORM =~ /java/ ?
|
118
|
+
@jruby_home ||= RUBY_PLATFORM =~ /java/ ? RbConfig::CONFIG['prefix'] :
|
123
119
|
( ENV['JRUBY_HOME'] || File.expand_path('~/.jruby') )
|
124
120
|
end
|
125
121
|
|
@@ -170,7 +166,7 @@ module Buildr
|
|
170
166
|
require 'jruby'
|
171
167
|
def JRuby.gem(name, version = '>0', *args)
|
172
168
|
require 'rbconfig'
|
173
|
-
jruby_home =
|
169
|
+
jruby_home = RbConfig::CONFIG['prefix']
|
174
170
|
expected_version = '#{TestFramework::JRubyBased.version}'
|
175
171
|
unless JRUBY_VERSION >= expected_version
|
176
172
|
fail "Expected JRuby version \#{expected_version} installed at \#{jruby_home} but got \#{JRUBY_VERSION}"
|
@@ -198,7 +194,7 @@ module Buildr
|
|
198
194
|
runner.requires ||= []
|
199
195
|
runner.requires.unshift File.join(File.dirname(__FILE__), 'test_result')
|
200
196
|
runner.gems ||= {}
|
201
|
-
runner.rspec ||= ['--format', 'progress', '--format',
|
197
|
+
runner.rspec ||= ['--format', 'progress', '--format', 'documentation']
|
202
198
|
runner.format.each { |format| runner.rspec << '--format' << format } if runner.format
|
203
199
|
runner.rspec.push '--format', "Buildr::TestFramework::TestResult::YamlFormatter"
|
204
200
|
runner.rspec.push '-o', runner.result
|
@@ -244,7 +240,7 @@ module Buildr
|
|
244
240
|
|
245
241
|
def runner_config
|
246
242
|
runner = super
|
247
|
-
runner.gems.update 'rspec' => '~> 2.
|
243
|
+
runner.gems.update 'rspec' => '~> 2.9.0'
|
248
244
|
runner.requires.unshift 'rspec'
|
249
245
|
runner
|
250
246
|
end
|
@@ -276,119 +272,6 @@ module Buildr
|
|
276
272
|
|
277
273
|
end
|
278
274
|
|
279
|
-
# <a href="http://jtestr.codehaus.org/">JtestR</a> is a framework for BDD and TDD using JRuby and ruby tools.
|
280
|
-
# To test your project with JtestR use:
|
281
|
-
# test.using :jtestr
|
282
|
-
#
|
283
|
-
#
|
284
|
-
# Support the following options:
|
285
|
-
# * :config -- path to JtestR config file. defaults to @spec/ruby/jtestr_config.rb@
|
286
|
-
# * :gems -- A hash of gems to install before running the tests.
|
287
|
-
# The keys of this hash are the gem name, the value must be the required version.
|
288
|
-
# * :requires -- A list of ruby files to require before running the specs
|
289
|
-
# Mainly used if an rspec format needs to require some file.
|
290
|
-
# * :format -- A list of valid Rspec --format option values. (defaults to 'progress')
|
291
|
-
# * :output -- File path to output dump. @false@ to supress output
|
292
|
-
# * :fork -- Create a new JavaVM to run the tests on
|
293
|
-
# * :properties -- Hash of properties passed to the test suite.
|
294
|
-
# * :java_args -- Arguments passed to the JVM.
|
295
|
-
class JtestR < TestFramework::JavaBDD
|
296
|
-
@lang = :ruby
|
297
|
-
@bdd_dir = :spec
|
298
|
-
|
299
|
-
include TestFramework::JRubyBased
|
300
|
-
|
301
|
-
VERSION = '0.6'
|
302
|
-
|
303
|
-
# pattern for rspec stories
|
304
|
-
STORY_PATTERN = /_(steps|story)\.rb$/
|
305
|
-
# pattern for test_unit files
|
306
|
-
TESTUNIT_PATTERN = /(_test|Test)\.rb$|(tc|ts)[^\\\/]+\.rb$/
|
307
|
-
# pattern for test files using http://expectations.rubyforge.org/
|
308
|
-
EXPECT_PATTERN = /_expect\.rb$/
|
309
|
-
|
310
|
-
TESTS_PATTERN = [STORY_PATTERN, TESTUNIT_PATTERN, EXPECT_PATTERN] + RSpec::TESTS_PATTERN
|
311
|
-
|
312
|
-
class << self
|
313
|
-
|
314
|
-
def version
|
315
|
-
Buildr.settings.build['jtestr'] || VERSION
|
316
|
-
end
|
317
|
-
|
318
|
-
def dependencies
|
319
|
-
unless @dependencies
|
320
|
-
super
|
321
|
-
@dependencies |= ["org.jtestr:jtestr:jar:#{version}"] +
|
322
|
-
JUnit.dependencies + TestNG.dependencies
|
323
|
-
end
|
324
|
-
@dependencies
|
325
|
-
end
|
326
|
-
|
327
|
-
def applies_to?(project) #:nodoc:
|
328
|
-
File.exist?(project.path_to(:source, bdd_dir, lang, 'jtestr_config.rb')) ||
|
329
|
-
Dir[project.path_to(:source, bdd_dir, lang, '**/*.rb')].any? { |f| TESTS_PATTERN.any? { |r| r === f } } ||
|
330
|
-
JUnit.applies_to?(project) || TestNG.applies_to?(project)
|
331
|
-
end
|
332
|
-
|
333
|
-
private
|
334
|
-
def const_missing(const)
|
335
|
-
return super unless const == :REQUIRES # TODO: remove in 1.5
|
336
|
-
Buildr.application.deprecated 'Please use JtestR.dependencies/.version instead of JtestR::REQUIRES/VERSION'
|
337
|
-
dependencies
|
338
|
-
end
|
339
|
-
|
340
|
-
end
|
341
|
-
|
342
|
-
def initialize(task, options) #:nodoc:
|
343
|
-
super
|
344
|
-
[:test, :spec].each do |usage|
|
345
|
-
java_tests = task.project.path_to(:source, usage, :java)
|
346
|
-
task.compile.from java_tests if File.directory?(java_tests)
|
347
|
-
resources = task.project.path_to(:source, usage, :resources)
|
348
|
-
task.resources.from resources if File.directory?(resources)
|
349
|
-
end
|
350
|
-
end
|
351
|
-
|
352
|
-
def user_config
|
353
|
-
options[:config] || task.project.path_to(:source, bdd_dir, lang, 'jtestr_config.rb')
|
354
|
-
end
|
355
|
-
|
356
|
-
def tests(dependencies) #:nodoc:
|
357
|
-
dependencies |= [task.compile.target.to_s]
|
358
|
-
types = { :story => STORY_PATTERN, :rspec => RSpec::TESTS_PATTERN,
|
359
|
-
:testunit => TESTUNIT_PATTERN, :expect => EXPECT_PATTERN }
|
360
|
-
tests = types.keys.inject({}) { |h, k| h[k] = []; h }
|
361
|
-
tests[:junit] = JUnit.new(task, {}).tests(dependencies)
|
362
|
-
tests[:testng] = TestNG.new(task, {}).tests(dependencies)
|
363
|
-
Dir[task.project.path_to(:source, bdd_dir, lang, '**/*.rb')].each do |rb|
|
364
|
-
type = types.find { |k, v| Array(v).any? { |r| r === rb } }
|
365
|
-
tests[type.first] << rb if type
|
366
|
-
end
|
367
|
-
@jtestr_tests = tests
|
368
|
-
tests.values.flatten
|
369
|
-
end
|
370
|
-
|
371
|
-
def runner_config
|
372
|
-
runner = super
|
373
|
-
# JtestR 0.6.0 comes with rspec 1.3.0 (and any other jtestr dependency) included,
|
374
|
-
# so the rspec version used depends on the jtestr jar.
|
375
|
-
runner.gems.update 'rspec' => '=1.3.0'
|
376
|
-
runner.requires.clear
|
377
|
-
runner.requires.unshift 'jtestr'
|
378
|
-
runner.requires.unshift 'spec'
|
379
|
-
runner.requires.unshift File.join(File.dirname(__FILE__), 'jtestr_result')
|
380
|
-
runner.rspec = ['--format', 'progress', '--format', "html:#{runner.html_report}"]
|
381
|
-
runner.format.each { |format| runner.rspec << '--format' << format } if runner.format
|
382
|
-
runner.rspec.push '--format', "Buildr::JtestR::YamlFormatter:#{runner.result}"
|
383
|
-
runner
|
384
|
-
end
|
385
|
-
|
386
|
-
def runner_content(binding)
|
387
|
-
runner_erb = File.join(File.dirname(__FILE__), 'jtestr_runner.rb.erb')
|
388
|
-
Filter::Mapper.new(:erb, binding).transform(File.read(runner_erb), runner_erb)
|
389
|
-
end
|
390
|
-
end
|
391
|
-
|
392
275
|
# JBehave is a Java BDD framework. To use in your project:
|
393
276
|
# test.using :jbehave
|
394
277
|
#
|
@@ -458,6 +341,5 @@ module Buildr
|
|
458
341
|
end
|
459
342
|
|
460
343
|
Buildr::TestFramework << Buildr::RSpec
|
461
|
-
Buildr::TestFramework << Buildr::JtestR
|
462
344
|
Buildr::TestFramework << Buildr::JBehave
|
463
345
|
|
@@ -13,14 +13,10 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
|
-
require 'buildr/java'
|
18
|
-
|
19
|
-
|
20
16
|
module Buildr
|
21
17
|
|
22
18
|
# Provides the <code>cobertura:html</code>, <code>cobertura:xml</code> and <code>cobertura:check</code> tasks.
|
23
|
-
# Require explicitly using <code>require "buildr/cobertura"</code>.
|
19
|
+
# Require explicitly using <code>require "buildr/java/cobertura"</code>.
|
24
20
|
#
|
25
21
|
# You can generate cobertura reports for a single project
|
26
22
|
# using the project name as prefix:
|
@@ -38,6 +34,10 @@ module Buildr
|
|
38
34
|
# cobertura.exclude /*.Const(ants)?/i
|
39
35
|
# end
|
40
36
|
#
|
37
|
+
# You can also specify the top level directory to which the top level cobertura tasks
|
38
|
+
# will generate reports by setting the value of the <code>Buildr::Cobertura.report_dir</code>
|
39
|
+
# configuration parameter.
|
40
|
+
#
|
41
41
|
module Cobertura
|
42
42
|
|
43
43
|
VERSION = '1.9.4.1'
|
@@ -65,12 +65,18 @@ module Buildr
|
|
65
65
|
REQUIRES.artifacts
|
66
66
|
end
|
67
67
|
|
68
|
+
attr_writer :report_dir
|
69
|
+
|
70
|
+
def report_dir
|
71
|
+
@report_dir || "reports/cobertura"
|
72
|
+
end
|
73
|
+
|
68
74
|
def report_to(file = nil)
|
69
|
-
File.expand_path(File.join(*[
|
75
|
+
File.expand_path(File.join(*[report_dir, file.to_s].compact))
|
70
76
|
end
|
71
77
|
|
72
|
-
def data_file
|
73
|
-
File.expand_path("
|
78
|
+
def data_file
|
79
|
+
File.expand_path("#{report_dir}.ser")
|
74
80
|
end
|
75
81
|
|
76
82
|
end
|
@@ -266,9 +272,9 @@ module Buildr
|
|
266
272
|
end
|
267
273
|
|
268
274
|
[:xml, :html].each do |format|
|
269
|
-
|
270
|
-
desc "Run the test cases and produce code coverage reports in #{report_target}"
|
275
|
+
desc "Run the test cases and produce code coverage reports"
|
271
276
|
task format => ["instrument", "test"] do
|
277
|
+
report_target = report_to(format)
|
272
278
|
if Buildr.projects.detect { |project| !project.compile.sources.empty? }
|
273
279
|
info "Creating test coverage reports in #{report_target}"
|
274
280
|
Buildr.ant "cobertura" do |ant|
|
data/lib/buildr/java/commands.rb
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
16
|
# Base module for all things Java.
|
18
17
|
module Java
|
19
18
|
|
@@ -56,12 +55,39 @@ module Java
|
|
56
55
|
options[:properties].each { |k, v| cmd_args << "-D#{k}=#{v}" } if options[:properties]
|
57
56
|
cmd_args += (options[:java_args] || (ENV['JAVA_OPTS'] || ENV['JAVA_OPTIONS']).to_s.split).flatten
|
58
57
|
cmd_args += args.flatten.compact
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
58
|
+
|
59
|
+
tmp = nil
|
60
|
+
begin
|
61
|
+
# Windows can't handle cmd lines greater than 2048/8192 chars.
|
62
|
+
# If our cmd line is longer, we create a batch file and execute it instead.
|
63
|
+
if Util.win_os? && cmd_args.map(&:inspect).join(' ').size > 2048
|
64
|
+
# remove '-classpath' and the classpath itself from the cmd line.
|
65
|
+
cp_i = cmd_args.index{|x| x.starts_with('-classpath')}
|
66
|
+
2.times do
|
67
|
+
cmd_args.delete_at cp_i unless cp_i.nil?
|
68
|
+
end
|
69
|
+
# create tmp batch file.
|
70
|
+
tmp = Tempfile.new(['starter', '.bat'])
|
71
|
+
tmp.write "@echo off\n"
|
72
|
+
tmp.write "SET CLASSPATH=#{cp.join(File::PATH_SEPARATOR).gsub(%r{/}, '\\')}\n"
|
73
|
+
tmp.write cmd_args.map(&:inspect).join(' ')
|
74
|
+
tmp.close
|
75
|
+
# set new cmd line.
|
76
|
+
cmd_args = [tmp.path]
|
77
|
+
end
|
78
|
+
|
79
|
+
unless Buildr.application.options.dryrun
|
80
|
+
info "Running #{name}" if name && options[:verbose]
|
81
|
+
block = lambda { |ok, res| fail "Failed to execute #{name}, see errors above" unless ok } unless block
|
82
|
+
cmd_args = cmd_args.map(&:inspect).join(' ') if Util.win_os?
|
83
|
+
sh(*cmd_args) do |ok, ps|
|
84
|
+
block.call ok, ps
|
85
|
+
end
|
86
|
+
end
|
87
|
+
ensure
|
88
|
+
unless tmp.nil?
|
89
|
+
tmp.close
|
90
|
+
tmp.unlink
|
65
91
|
end
|
66
92
|
end
|
67
93
|
end
|
data/lib/buildr/java/compiler.rb
CHANGED
@@ -13,13 +13,6 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
|
-
require 'buildr/core/project'
|
18
|
-
require 'buildr/core/common'
|
19
|
-
require 'buildr/core/compile'
|
20
|
-
require 'buildr/packaging'
|
21
|
-
|
22
|
-
|
23
16
|
module Buildr
|
24
17
|
module Compiler
|
25
18
|
|
data/lib/buildr/java/doc.rb
CHANGED
data/lib/buildr/java/emma.rb
CHANGED
data/lib/buildr/java/jruby.rb
CHANGED
@@ -13,11 +13,9 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
16
|
require 'java'
|
18
17
|
require 'jruby'
|
19
18
|
|
20
|
-
|
21
19
|
# Buildr runs along side a JVM, using either RJB or JRuby. The Java module allows
|
22
20
|
# you to access Java classes and create Java objects.
|
23
21
|
#
|
data/lib/buildr/java/pom.rb
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
|
17
16
|
module Buildr
|
18
17
|
class POM
|
19
18
|
|
@@ -76,36 +75,44 @@ module Buildr
|
|
76
75
|
|
77
76
|
# :call-seq:
|
78
77
|
# dependencies(scopes?) => artifacts
|
78
|
+
# dependencies(:scopes = [:runtime, :test, ...], :optional = true) => artifacts
|
79
79
|
#
|
80
80
|
# Returns list of required dependencies as specified by the POM. You can specify which scopes
|
81
81
|
# to use (e.g. "compile", "runtime"); use +nil+ for dependencies with unspecified scope.
|
82
|
-
# The default scopes are +nil+, "compile" and "runtime" (aka SCOPES_WE_USE).
|
83
|
-
|
84
|
-
|
82
|
+
# The default scopes are +nil+, "compile" and "runtime" (aka SCOPES_WE_USE) and no optional dependencies.
|
83
|
+
# Specifying optional = true will return all optional dependencies matching the given scopes.
|
84
|
+
def dependencies(options = {})
|
85
|
+
# backward compatibility
|
86
|
+
options = { :scopes => options } if Array === options
|
87
|
+
|
88
|
+
# support symbols, but don't fidget with nil
|
89
|
+
options[:scopes] = (options[:scopes] || SCOPES_WE_USE).map { |s| s.to_s if s }
|
90
|
+
|
91
|
+
# try to cache dependencies also
|
85
92
|
@depends_for_scopes ||= {}
|
86
|
-
unless depends = @depends_for_scopes[
|
93
|
+
unless depends = @depends_for_scopes[options]
|
87
94
|
declared = project["dependencies"].first["dependency"] rescue nil
|
88
|
-
depends = (declared || [])
|
89
|
-
|
95
|
+
depends = (declared || [])
|
96
|
+
depends = depends.reject { |dep| value_of(dep["optional"]) =~ /true/ } unless options[:optional]
|
97
|
+
depends = depends.map { |dep|
|
90
98
|
spec = pom_to_hash(dep, properties)
|
91
99
|
apply = managed(spec)
|
92
100
|
spec = apply.merge(spec) if apply
|
93
101
|
|
94
|
-
#calculate transitive dependencies
|
95
|
-
if scopes.include?(spec[:scope])
|
102
|
+
# calculate transitive dependencies
|
103
|
+
if options[:scopes].include?(spec[:scope])
|
96
104
|
spec.delete(:scope)
|
97
105
|
|
98
|
-
exclusions = dep["exclusions"]["exclusion"] rescue nil
|
99
|
-
transitive_deps = POM.load(spec).dependencies(SCOPES_TRANSITIVE)
|
106
|
+
exclusions = dep["exclusions"].first["exclusion"] rescue nil
|
107
|
+
transitive_deps = POM.load(spec).dependencies(options[:scopes_transitive] || SCOPES_TRANSITIVE)
|
100
108
|
transitive_deps = transitive_deps.reject{|dep|
|
101
|
-
exclusions.find {|ex| dep.index("#{
|
109
|
+
exclusions.find {|ex| dep.index("#{ex['groupId'].first}:#{ex['artifactId'].first}:") == 0}
|
102
110
|
} if exclusions
|
103
111
|
|
104
112
|
[Artifact.to_spec(spec)] + transitive_deps
|
105
113
|
end
|
106
114
|
}.flatten.compact #.uniq_by{|spec| art = spec.split(':'); "#{art[0]}:#{art[1]}"}
|
107
|
-
|
108
|
-
@depends_for_scopes[scopes] = depends
|
115
|
+
@depends_for_scopes[options] = depends
|
109
116
|
end
|
110
117
|
depends
|
111
118
|
end
|
@@ -123,7 +130,7 @@ module Buildr
|
|
123
130
|
hash
|
124
131
|
}
|
125
132
|
props = project["properties"].first rescue {}
|
126
|
-
props = props.inject({}) { |mapped, pair| mapped[pair.first] = value_of(pair.last,
|
133
|
+
props = props.inject({}) { |mapped, pair| mapped[pair.first] = value_of(pair.last, props) ; mapped }
|
127
134
|
(parent ? parent.properties.merge(props) : props).merge(pom)
|
128
135
|
end
|
129
136
|
end
|
@@ -157,7 +164,8 @@ module Buildr
|
|
157
164
|
# property substitution.
|
158
165
|
def value_of(element, substitute = nil)
|
159
166
|
value = element.to_a.join.strip
|
160
|
-
|
167
|
+
value = value.gsub(/\$\{([^}]+)\}/) { |key| Array(substitute[$1]).join.strip } if substitute
|
168
|
+
value
|
161
169
|
end
|
162
170
|
|
163
171
|
# :call-seq:
|