ivy4r 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +11 -0
- data/Manifest.txt +0 -1
- data/lib/buildr/ivy_extension.rb +33 -11
- data/lib/ivy/targets.rb +0 -1
- data/lib/ivy4r.rb +2 -8
- metadata +2 -3
- data/lib/ivy/to_ivy_file.rb +0 -31
data/History.txt
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
=== 0.9.3 / 2009-11-18
|
2
|
+
|
3
|
+
* Sorting of compile and test dependencies to prevent problems with old jars that are added by
|
4
|
+
buildr automatically, i.e. log4j-1.2.9 for cobertura or JUnit 4.4 if tests are using a newer version.
|
5
|
+
The sort order:
|
6
|
+
1. all project dependencies as classes, resources and this like in the order the are contained in path
|
7
|
+
2. all ivy dependencies
|
8
|
+
3. all dependencies added by buildr to the targets
|
9
|
+
* Deleted 'to_ivy_file' functionality because it was not working as expected. The function used the
|
10
|
+
wrong ivy context and was not able to resolve all variables within the file from the correct ivy context.
|
11
|
+
|
1
12
|
=== 0.9.2 / 2009-11-16
|
2
13
|
|
3
14
|
* Added new method to generate an ivy file from a resolved module descriptor, via the java
|
data/Manifest.txt
CHANGED
data/lib/buildr/ivy_extension.rb
CHANGED
@@ -334,17 +334,6 @@ module Buildr
|
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
337
|
-
# Sets the properties for creation of an ivy file from resolved descriptor as an post_resolve task.
|
338
|
-
def to_ivy_file(args)
|
339
|
-
raise "The output file ':file' must be specified for 'to_ivy_file'" unless args.member? :file
|
340
|
-
raise "Only :file and :overwrite are allowed arguments for 'to_ivy_file'" if (args.keys - [:file, :overwrite]).size > 0
|
341
|
-
post_resolve do
|
342
|
-
FileUtils.mkdir_p File.dirname(args[:file])
|
343
|
-
ivy4r.to_ivy_file args
|
344
|
-
@project.send(:info, "Created ivy file: '#{args[:file]}'")
|
345
|
-
end
|
346
|
-
end
|
347
|
-
|
348
337
|
# Adds given block as post resolve action that is executed directly after #resolve has been called.
|
349
338
|
# Yields this ivy config object into block.
|
350
339
|
# <tt>project.ivy.post_resolve { |ivy| p "all deps:" + ivy.deps('all').join(", ") }</tt>
|
@@ -477,6 +466,7 @@ For more configuration options see IvyConfig.
|
|
477
466
|
include Buildr::Extension
|
478
467
|
|
479
468
|
class << self
|
469
|
+
|
480
470
|
def add_ivy_deps_to_java_tasks(project)
|
481
471
|
resolve_target = project.ivy.file_project.task('ivy:resolve')
|
482
472
|
project.task :compiledeps => resolve_target do
|
@@ -486,6 +476,7 @@ For more configuration options see IvyConfig.
|
|
486
476
|
confs = [project.ivy.compile_conf].flatten
|
487
477
|
if deps = project.ivy.filter(confs, :type => types, :include => includes, :exclude => excludes)
|
488
478
|
project.compile.with [deps, project.compile.dependencies].flatten
|
479
|
+
sort_dependencies(project.compile.dependencies, deps, project.path_to(''))
|
489
480
|
info "Ivy adding compile dependencies '#{confs.join(', ')}' to project '#{project.name}'"
|
490
481
|
end
|
491
482
|
end
|
@@ -499,6 +490,8 @@ For more configuration options see IvyConfig.
|
|
499
490
|
confs = [project.ivy.test_conf, project.ivy.compile_conf].flatten.uniq
|
500
491
|
if deps = project.ivy.filter(confs, :type => types, :include => includes, :exclude => excludes)
|
501
492
|
project.test.with [deps, project.test.dependencies].flatten
|
493
|
+
sort_dependencies(project.test.dependencies, deps, project.path_to(''))
|
494
|
+
sort_dependencies(project.test.compile.dependencies, deps, project.path_to(''))
|
502
495
|
info "Ivy adding test dependencies '#{confs.join(', ')}' to project '#{project.name}'"
|
503
496
|
end
|
504
497
|
end
|
@@ -518,6 +511,35 @@ For more configuration options see IvyConfig.
|
|
518
511
|
end
|
519
512
|
end
|
520
513
|
|
514
|
+
# Sorts the dependencies in #deps replacing the old order.
|
515
|
+
# Sorting is done as follows:
|
516
|
+
# 1. all dependencies that belong to the project identified by #project_path,
|
517
|
+
# .i.e. instrumented-classes, resources in the order the are contained in the array
|
518
|
+
# 2. all ivy dependencies identified by #ivy_deps
|
519
|
+
# 3. all dependencies added automatically by buildr
|
520
|
+
def sort_dependencies(deps, ivy_deps, project_path)
|
521
|
+
old_deps = deps.dup
|
522
|
+
belongs_to_project = /#{project_path}/
|
523
|
+
deps.sort! do |a, b|
|
524
|
+
a_belongs_to_project = belongs_to_project.match(a.to_s)
|
525
|
+
b_belongs_to_project = belongs_to_project.match(b.to_s)
|
526
|
+
a_ivy = ivy_deps.member? a
|
527
|
+
b_ivy = ivy_deps.member? b
|
528
|
+
|
529
|
+
if a_belongs_to_project && !b_belongs_to_project
|
530
|
+
-1
|
531
|
+
elsif !a_belongs_to_project && b_belongs_to_project
|
532
|
+
1
|
533
|
+
elsif a_ivy && !b_ivy
|
534
|
+
-1
|
535
|
+
elsif !a_ivy && b_ivy
|
536
|
+
1
|
537
|
+
else
|
538
|
+
old_deps.index(a) <=> old_deps.index(b)
|
539
|
+
end
|
540
|
+
end
|
541
|
+
end
|
542
|
+
|
521
543
|
def add_manifest_to_distributeables(project)
|
522
544
|
pkgs = project.packages.find_all { |pkg| [:jar, :war, :ear].member? pkg.type }
|
523
545
|
pkgs.each do |pkg|
|
data/lib/ivy/targets.rb
CHANGED
data/lib/ivy4r.rb
CHANGED
@@ -35,7 +35,7 @@ is
|
|
35
35
|
}
|
36
36
|
=end
|
37
37
|
class Ivy4r
|
38
|
-
VERSION = '0.9.
|
38
|
+
VERSION = '0.9.3'
|
39
39
|
|
40
40
|
# Set the ant home directory to load ant classes from if no custom __antwrap__ is provided
|
41
41
|
# and the default provided ant version 1.7.1 should not be used.
|
@@ -150,13 +150,7 @@ class Ivy4r
|
|
150
150
|
def report(*params)
|
151
151
|
Ivy::Report.new(ant).execute(*params)
|
152
152
|
end
|
153
|
-
|
154
|
-
# Creates ivy file for last resolved descriptor using the underlying java facilities
|
155
|
-
# (ModuleDescriptor.toIvyFile(java.io.File)).
|
156
|
-
def to_ivy_file(*params)
|
157
|
-
Ivy::ToIvyFile.new(ant).execute(*params)
|
158
|
-
end
|
159
|
-
|
153
|
+
|
160
154
|
# Used to get or set ant properties.
|
161
155
|
# [set] <tt>property['name'] = value</tt> sets the ant property with name to given value no overwrite
|
162
156
|
# [get] <tt>property[matcher]</tt> gets property that is equal via case equality operator (<tt>===</tt>)
|
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.9.
|
4
|
+
version: 0.9.3
|
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-18 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -94,7 +94,6 @@ files:
|
|
94
94
|
- lib/ivy/settings.rb
|
95
95
|
- lib/ivy/target.rb
|
96
96
|
- lib/ivy/targets.rb
|
97
|
-
- lib/ivy/to_ivy_file.rb
|
98
97
|
- lib/ivy4r.rb
|
99
98
|
- lib/rake/ivy_extension.rb
|
100
99
|
- test/buildlist/p1/buildfile
|
data/lib/ivy/to_ivy_file.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'ivy/target'
|
2
|
-
|
3
|
-
module Ivy
|
4
|
-
class ToIvyFile < Ivy::Target
|
5
|
-
def parameter
|
6
|
-
[
|
7
|
-
Parameter.new(:file, true),
|
8
|
-
Parameter.new(:overwrite, false)
|
9
|
-
]
|
10
|
-
end
|
11
|
-
|
12
|
-
protected
|
13
|
-
def execute_ivy
|
14
|
-
descriptor = ant_references.find {|tuple| tuple[0] == 'ivy.resolved.descriptor'}
|
15
|
-
raise 'to_ivy_file is a post resolve task but no resolved descriptor was found!' if descriptor.nil?
|
16
|
-
descriptor = descriptor[1]
|
17
|
-
|
18
|
-
file = params[:file]
|
19
|
-
overwrite = params[:overwrite] && params[:overwrite].to_s == 'true'
|
20
|
-
unless !File.exists?(file) || overwrite
|
21
|
-
raise "Output file '#{file}' exists and ':overwrite' is false or unset: #{params[:overwrite]}"
|
22
|
-
end
|
23
|
-
|
24
|
-
descriptor.toIvyFile(java.io.File.new(file))
|
25
|
-
end
|
26
|
-
|
27
|
-
def create_return_values
|
28
|
-
nil
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|