ivy-resolver 0.0.1 → 0.1
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/README.md +41 -0
- data/ivy-resolver.gemspec +1 -1
- data/lib/ivy-resolver.rb +1 -1
- data/lib/ivy/resolver.rb +1 -0
- data/lib/ivy/resolver/dsl.rb +15 -2
- data/lib/ivy/resolver/version.rb +1 -1
- data/spec/ivy_resolver_spec.rb +14 -0
- data/spec_files/org/example/test/0.0.1/test-0.0.1.pom +20 -0
- data/spec_files/org/example/test2/0.0.1/TransitiveDependencyTestClass.class +0 -0
- data/spec_files/org/example/test2/0.0.1/TransitiveDependencyTestClass.java +8 -0
- data/spec_files/org/example/test2/0.0.1/test2-0.0.1.pom +11 -0
- metadata +60 -41
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
Usage
|
2
|
+
=====
|
3
|
+
|
4
|
+
1\. Create a file called `Jarfile` in the root of your project. One example based on the [Ivy Quick Start](http://ant.apache.org/ivy/history/latest-milestone/tutorial/start.html) guide.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
project 'org.apache', 'hello-ivy', '0.0.1'
|
8
|
+
|
9
|
+
source 'http://repo1.maven.org/maven2'
|
10
|
+
|
11
|
+
jar 'commons-lang', 'commons-lang', '2.0'
|
12
|
+
jar 'commons-cli', 'commons-cli', '2.0'
|
13
|
+
```
|
14
|
+
|
15
|
+
2\. Add `ivy-resolver` to your `Gemfile`
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
gem 'ivy-resolver'
|
19
|
+
```
|
20
|
+
|
21
|
+
3\. Load the JARs at init / runtime
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
Ivy::Resolver.require
|
25
|
+
```
|
26
|
+
|
27
|
+
|
28
|
+
Changelog
|
29
|
+
=========
|
30
|
+
|
31
|
+
0.1
|
32
|
+
- Fixed to work with ibilio repositories, so transitive dependencies will work.
|
33
|
+
|
34
|
+
0.0.1
|
35
|
+
- Initial version
|
36
|
+
|
37
|
+
|
38
|
+
Bugs
|
39
|
+
====
|
40
|
+
|
41
|
+
None known at the moment.
|
data/ivy-resolver.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
18
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
-
s.require_paths = ["lib"
|
20
|
+
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
# specify any dependencies here; for example:
|
23
23
|
s.add_development_dependency "rspec", '~> 2.8.0'
|
data/lib/ivy-resolver.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Released under the MIT license. See the MIT-LICENSE file for details
|
2
2
|
|
3
3
|
require "ivy/resolver/version"
|
4
|
-
require "ivy-#{Ivy::Resolver::IVY_VERSION}.jar"
|
4
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'jars', "ivy-#{Ivy::Resolver::IVY_VERSION}.jar"))
|
5
5
|
|
6
6
|
require "ivy/resolver"
|
data/lib/ivy/resolver.rb
CHANGED
@@ -101,6 +101,7 @@ module Ivy
|
|
101
101
|
:output_report => false,
|
102
102
|
:refresh => false,
|
103
103
|
:use_cache_only => false,
|
104
|
+
:transitive => true,
|
104
105
|
:validate => false
|
105
106
|
}.merge(opts).inject(ResolveOptions.new) do |resolve_options, (option, value)|
|
106
107
|
resolve_options.send :"set_#{option}", value
|
data/lib/ivy/resolver/dsl.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
class Ivy::Resolver
|
4
4
|
class DSL
|
5
|
+
java_import Java::org.apache.ivy.plugins.resolver.IBiblioResolver
|
5
6
|
java_import Java::org.apache.ivy.plugins.resolver.URLResolver
|
6
7
|
java_import Java::org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor
|
7
8
|
java_import Java::org.apache.ivy.core.module.id.ModuleRevisionId
|
@@ -18,11 +19,15 @@ class Ivy::Resolver
|
|
18
19
|
|
19
20
|
def source(url, opts={})
|
20
21
|
opts = default_source_opts(url).merge(opts)
|
22
|
+
tidy_opts opts
|
21
23
|
|
22
|
-
|
24
|
+
klass = decide_resolver_type opts
|
25
|
+
|
26
|
+
klass.new.tap do |resolver|
|
23
27
|
resolver.m2compatible = opts[:maven]
|
24
28
|
resolver.name = opts[:name]
|
25
|
-
resolver.add_artifact_pattern opts[:pattern]
|
29
|
+
resolver.add_artifact_pattern opts[:pattern] if opts[:pattern]
|
30
|
+
resolver.root = url if resolver.respond_to? :root=
|
26
31
|
|
27
32
|
yield resolver if block_given?
|
28
33
|
|
@@ -66,5 +71,13 @@ class Ivy::Resolver
|
|
66
71
|
:configurations => ['*']
|
67
72
|
}
|
68
73
|
end
|
74
|
+
|
75
|
+
def tidy_opts(opts)
|
76
|
+
opts.delete :pattern if opts[:maven]
|
77
|
+
end
|
78
|
+
|
79
|
+
def decide_resolver_type(opts)
|
80
|
+
opts[:maven] ? IBiblioResolver : URLResolver
|
81
|
+
end
|
69
82
|
end
|
70
83
|
end
|
data/lib/ivy/resolver/version.rb
CHANGED
data/spec/ivy_resolver_spec.rb
CHANGED
@@ -12,6 +12,9 @@ describe Ivy::Resolver do
|
|
12
12
|
@artifact_path = spec_files_path 'org/example/test/0.0.1'
|
13
13
|
@artifact = "#{@name}-#{@revision}.jar"
|
14
14
|
%x[cd #{@artifact_path}; rm -f #{@artifact}; javac *.java; zip #{@artifact} *.class]
|
15
|
+
@transitive_path = spec_files_path 'org/example/test2/0.0.1'
|
16
|
+
@transitive_artifact = "test2-#{@revision}.jar"
|
17
|
+
%x[cd #{@transitive_path}; rm -f #{@transitive_artifact}; javac *.java; zip #{@transitive_artifact} *.class]
|
15
18
|
end
|
16
19
|
|
17
20
|
it 'can be instantiated' do
|
@@ -84,6 +87,12 @@ describe Ivy::Resolver do
|
|
84
87
|
result.first.require
|
85
88
|
Java::IvyResolverTestClass.new.test_value.should be_a String
|
86
89
|
end
|
90
|
+
|
91
|
+
it 'includes a transitive dependency' do
|
92
|
+
result = subject.resolve
|
93
|
+
result.each(&:require)
|
94
|
+
Java::TransitiveDependencyTestClass.new.test_value.should be_a String
|
95
|
+
end
|
87
96
|
end
|
88
97
|
|
89
98
|
context 'with a jruby project' do
|
@@ -108,5 +117,10 @@ describe Ivy::Resolver do
|
|
108
117
|
Ivy::Resolver.require
|
109
118
|
Java::IvyResolverTestClass.new.test_value.should be_a String
|
110
119
|
end
|
120
|
+
|
121
|
+
it 'also requires the transitive artifact' do
|
122
|
+
Ivy::Resolver.require
|
123
|
+
Java::TransitiveDependencyTestClass.new.test_value.should be_a String
|
124
|
+
end
|
111
125
|
end
|
112
126
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
3
|
+
<modelVersion>0.0.1</modelVersion>
|
4
|
+
<groupId>org.example</groupId>
|
5
|
+
<artifactId>test</artifactId>
|
6
|
+
<version>0.0.1</version>
|
7
|
+
<name>Test Artifact</name>
|
8
|
+
<description>
|
9
|
+
A test artifact
|
10
|
+
</description>
|
11
|
+
<dependencies>
|
12
|
+
<dependency>
|
13
|
+
<groupId>org.example</groupId>
|
14
|
+
<artifactId>test2</artifactId>
|
15
|
+
<version>0.0.1</version>
|
16
|
+
<type>jar</type>
|
17
|
+
<scope>runtime</scope>
|
18
|
+
</dependency>
|
19
|
+
</dependencies>
|
20
|
+
</project>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
3
|
+
<modelVersion>0.0.1</modelVersion>
|
4
|
+
<groupId>org.example</groupId>
|
5
|
+
<artifactId>test2</artifactId>
|
6
|
+
<version>0.0.1</version>
|
7
|
+
<name>Transitive Artifact</name>
|
8
|
+
<description>
|
9
|
+
A transitive artifact
|
10
|
+
</description>
|
11
|
+
</project>
|
metadata
CHANGED
@@ -1,54 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ivy-resolver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 9
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: "0.1"
|
6
10
|
platform: ruby
|
7
11
|
authors:
|
8
|
-
|
12
|
+
- Shaun Mangelsdorf
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
16
|
|
13
|
-
date: 2012-01-
|
17
|
+
date: 2012-01-24 00:00:00 Z
|
14
18
|
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: rspec
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 47
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 8
|
31
|
+
- 0
|
32
|
+
version: 2.8.0
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
26
35
|
description: Provides a Bundler-like interface to resolve JARs with Ivy
|
27
36
|
email:
|
28
|
-
|
37
|
+
- s.mangelsdorf@gmail.com
|
29
38
|
executables: []
|
30
39
|
|
31
40
|
extensions:
|
32
|
-
|
41
|
+
- jars/Rakefile
|
33
42
|
extra_rdoc_files: []
|
34
43
|
|
35
44
|
files:
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
45
|
+
- .gitignore
|
46
|
+
- Gemfile
|
47
|
+
- MIT-LICENSE
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- ivy-resolver.gemspec
|
51
|
+
- jars/Rakefile
|
52
|
+
- lib/ivy-resolver.rb
|
53
|
+
- lib/ivy/resolver.rb
|
54
|
+
- lib/ivy/resolver/artifact.rb
|
55
|
+
- lib/ivy/resolver/dsl.rb
|
56
|
+
- lib/ivy/resolver/version.rb
|
57
|
+
- spec/ivy_resolver_spec.rb
|
58
|
+
- spec/spec_helper.rb
|
59
|
+
- spec_files/Jarfile
|
60
|
+
- spec_files/org/example/test/0.0.1/.gitignore
|
61
|
+
- spec_files/org/example/test/0.0.1/IvyResolverTestClass.java
|
62
|
+
- spec_files/org/example/test/0.0.1/test-0.0.1.pom
|
63
|
+
- spec_files/org/example/test2/0.0.1/TransitiveDependencyTestClass.class
|
64
|
+
- spec_files/org/example/test2/0.0.1/TransitiveDependencyTestClass.java
|
65
|
+
- spec_files/org/example/test2/0.0.1/test2-0.0.1.pom
|
52
66
|
homepage: ""
|
53
67
|
licenses: []
|
54
68
|
|
@@ -56,24 +70,29 @@ post_install_message:
|
|
56
70
|
rdoc_options: []
|
57
71
|
|
58
72
|
require_paths:
|
59
|
-
|
60
|
-
- jars
|
73
|
+
- lib
|
61
74
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
75
|
none: false
|
63
76
|
requirements:
|
64
|
-
|
65
|
-
|
66
|
-
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
hash: 3
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
version: "0"
|
67
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
84
|
none: false
|
69
85
|
requirements:
|
70
|
-
|
71
|
-
|
72
|
-
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 3
|
89
|
+
segments:
|
90
|
+
- 0
|
91
|
+
version: "0"
|
73
92
|
requirements: []
|
74
93
|
|
75
94
|
rubyforge_project: ivy-resolver
|
76
|
-
rubygems_version: 1.8.
|
95
|
+
rubygems_version: 1.8.5
|
77
96
|
signing_key:
|
78
97
|
specification_version: 3
|
79
98
|
summary: Resolve JAR files using Ivy under the covers
|