ivy4r 0.8.1 → 0.9.0
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/History.txt +6 -0
- data/lib/buildr/ivy_extension.rb +29 -26
- data/lib/ivy4r.rb +1 -1
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== 0.9.0 / 2009-11-16
|
2
|
+
|
3
|
+
* Add a new configuration option for compile, test and package with name 'type'. The type can
|
4
|
+
be used as defined in ivy to only get artifacts of given type(s). One or more types can be
|
5
|
+
set as an array to this option. If no type is given all artifacts are retrieved.
|
6
|
+
|
1
7
|
=== 0.8.1 / 2009-11-12
|
2
8
|
|
3
9
|
* the project version is NOT set anymore by the the 'before_define' of the extension. The reason
|
data/lib/buildr/ivy_extension.rb
CHANGED
@@ -3,32 +3,17 @@ require 'ivy4r'
|
|
3
3
|
module Buildr
|
4
4
|
module Ivy
|
5
5
|
|
6
|
-
# TODO extend extension to download ivy stuff with dependencies automatically
|
7
|
-
# VERSION = '2.1.0-rc1'
|
8
|
-
|
9
6
|
class << self
|
10
|
-
|
11
7
|
def setting(*keys)
|
12
8
|
setting = Buildr.settings.build['ivy']
|
13
9
|
keys.each { |key| setting = setting[key] unless setting.nil? }
|
14
10
|
setting
|
15
11
|
end
|
16
|
-
|
17
|
-
# def version
|
18
|
-
# setting['version'] || VERSION
|
19
|
-
# end
|
20
|
-
# def dependencies
|
21
|
-
# @dependencies ||= [
|
22
|
-
# "org.apache.ivy:ivy:jar:#{version}",
|
23
|
-
# 'com.jcraft:jsch:jar:1.41',
|
24
|
-
# 'oro:oro:jar:2.08'
|
25
|
-
# ]
|
26
|
-
# end
|
27
12
|
end
|
28
13
|
|
29
14
|
class IvyConfig
|
30
15
|
TARGETS = [:compile, :test, :package]
|
31
|
-
TYPES = [:conf, :include, :exclude]
|
16
|
+
TYPES = [:conf, :type, :include, :exclude]
|
32
17
|
|
33
18
|
attr_accessor :extension_dir, :resolved
|
34
19
|
|
@@ -83,11 +68,26 @@ module Buildr
|
|
83
68
|
|
84
69
|
# Returns the artifacts for given configurations as array
|
85
70
|
# this is a post resolve task.
|
86
|
-
|
87
|
-
|
71
|
+
# the arguments are checked for the following:
|
72
|
+
# 1. if exactly two arrays are given args[0] is used for confs and args[1] is used for types
|
73
|
+
# 2. if not exactly two arrays all args are used as confs
|
74
|
+
def deps(*args)
|
75
|
+
if args.size == 2 && args[0].kind_of?(Array) && args[1].kind_of?(Array)
|
76
|
+
confs, types = args[0], args[1]
|
77
|
+
else
|
78
|
+
confs, types = args.flatten, []
|
79
|
+
end
|
80
|
+
|
81
|
+
[confs, types].each do |t|
|
82
|
+
t.reject! {|c| c.nil? || c.blank? }
|
83
|
+
end
|
84
|
+
|
88
85
|
unless confs.empty?
|
89
|
-
pathid = "ivy.deps." + confs.join('.')
|
90
|
-
|
86
|
+
pathid = "ivy.deps." + confs.join('.') + '.' + types.join('.')
|
87
|
+
params = {:conf => confs.join(','), :pathid => pathid}
|
88
|
+
params[:type] = types.join(',') unless types.nil? || types.size == 0
|
89
|
+
|
90
|
+
ivy4r.cachepath params
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
@@ -346,12 +346,12 @@ module Buildr
|
|
346
346
|
# <tt>project.ivy.filter('server', 'client', :include => /b.*.jar/, :exclude => [/a\.jar/, /other.*\.jar/])</tt>
|
347
347
|
def filter(*confs)
|
348
348
|
filter = confs.last.kind_of?(Hash) ? confs.pop : {}
|
349
|
-
unless (filter.keys - [:
|
349
|
+
unless (filter.keys - (TYPES - [:conf])).empty?
|
350
350
|
raise ArgumentError, "Invalid filter use :include and/or :exclude only: given #{filter.keys.inspect}"
|
351
351
|
end
|
352
|
-
includes, excludes = filter[:include] || [], filter[:exclude] || []
|
352
|
+
includes, excludes, types = filter[:include] || [], filter[:exclude] || [], filter[:type] || []
|
353
353
|
|
354
|
-
artifacts = deps(
|
354
|
+
artifacts = deps(confs.flatten, types.flatten)
|
355
355
|
if artifacts
|
356
356
|
artifacts = artifacts.find_all do |lib|
|
357
357
|
lib = File.basename(lib)
|
@@ -471,8 +471,9 @@ For more configuration options see IvyConfig.
|
|
471
471
|
project.task :compiledeps => resolve_target do
|
472
472
|
includes = project.ivy.compile_include
|
473
473
|
excludes = project.ivy.compile_exclude
|
474
|
+
types = project.ivy.compile_type
|
474
475
|
confs = [project.ivy.compile_conf].flatten
|
475
|
-
if deps = project.ivy.filter(confs, :include => includes, :exclude => excludes)
|
476
|
+
if deps = project.ivy.filter(confs, :type => types, :include => includes, :exclude => excludes)
|
476
477
|
project.compile.with [deps, project.compile.dependencies].flatten
|
477
478
|
info "Ivy adding compile dependencies '#{confs.join(', ')}' to project '#{project.name}'"
|
478
479
|
end
|
@@ -483,8 +484,9 @@ For more configuration options see IvyConfig.
|
|
483
484
|
project.task :testdeps => resolve_target do
|
484
485
|
includes = project.ivy.test_include
|
485
486
|
excludes = project.ivy.test_exclude
|
487
|
+
types = project.ivy.test_type
|
486
488
|
confs = [project.ivy.test_conf, project.ivy.compile_conf].flatten.uniq
|
487
|
-
if deps = project.ivy.filter(confs, :include => includes, :exclude => excludes)
|
489
|
+
if deps = project.ivy.filter(confs, :type => types, :include => includes, :exclude => excludes)
|
488
490
|
project.test.with [deps, project.test.dependencies].flatten
|
489
491
|
info "Ivy adding test dependencies '#{confs.join(', ')}' to project '#{project.name}'"
|
490
492
|
end
|
@@ -523,8 +525,9 @@ For more configuration options see IvyConfig.
|
|
523
525
|
task = project.task "#{pkg.name}deps" => project.ivy.file_project.task('ivy:resolve') do
|
524
526
|
includes = project.ivy.package_include
|
525
527
|
excludes = project.ivy.package_exclude
|
528
|
+
types = project.ivy.package_type
|
526
529
|
confs = project.ivy.package_conf
|
527
|
-
if deps = project.ivy.filter(confs, :include => includes, :exclude => excludes)
|
530
|
+
if deps = project.ivy.filter(confs, :type => types, :include => includes, :exclude => excludes)
|
528
531
|
pkg.with :libs => [deps, pkg.libs].flatten
|
529
532
|
info "Adding production libs from conf '#{confs.join(', ')}' to WAR '#{pkg.name}' in project '#{project.name}'"
|
530
533
|
end
|
data/lib/ivy4r.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ivy4r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Klaas Prause
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-16 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|