buildr-gemjar 1.0.2 → 1.1.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/CHANGELOG.md +12 -0
- data/README.md +30 -1
- data/lib/buildr-gemjar.rb +98 -8
- data/lib/buildr-gemjar/version.rb +1 -1
- data/spec/buildr-gemjar_spec.rb +136 -1
- data/spec/repo_builder.rb +51 -7
- metadata +69 -69
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
1.1.0
|
2
|
+
=====
|
3
|
+
|
4
|
+
- Added: JARs which are embedded in gems which are being packaged by
|
5
|
+
buildr-gemjar can be unpacked into the result JAR. The default
|
6
|
+
behavior is to unpack any JARs found under `lib` in the gem, but
|
7
|
+
this can be changed with an option on `with_gem`. See the README for
|
8
|
+
more details. (#4)
|
9
|
+
|
10
|
+
- Fixed: When invoking `gem install` check the exit status (in
|
11
|
+
addition to scanning the output) to detect failures. (#2)
|
12
|
+
|
1
13
|
1.0.2
|
2
14
|
=====
|
3
15
|
|
data/README.md
CHANGED
@@ -54,6 +54,32 @@ You can also include a gem for which you have a `.gem` package:
|
|
54
54
|
|
55
55
|
[buildr-package]: http://buildr.apache.org/packaging.html
|
56
56
|
|
57
|
+
### JARs embedded in gems
|
58
|
+
|
59
|
+
Many gems that are intended for use in JRuby embed one or more JARs
|
60
|
+
containing "native" java code. [jruby-openssl][] is a popular example
|
61
|
+
of this practice. If these jars are embedded as-is into the gemjar,
|
62
|
+
they won't be visible to ruby code.
|
63
|
+
|
64
|
+
To resolve this, `buildr-gemjar` will unpack any jar found under the
|
65
|
+
lib directory of any installed gem (including dependent gems) and
|
66
|
+
include its contents in the gemjar directly. You can control this
|
67
|
+
behavior for an individual gem with the `:unpack_jars` option to
|
68
|
+
`with_gems`. It can be set to one of the following values:
|
69
|
+
|
70
|
+
* an array of globs; e.g., `["lib/shared/**/*.jar"]`. Each glob will be
|
71
|
+
applied at the root of the installed gem's contents and each match
|
72
|
+
will be unpacked into the gemjar.
|
73
|
+
* `true`. Equivalent to `["lib/**/*.jar"]`. This is the default.
|
74
|
+
* `false`. Do not unpack any jars from this gem.
|
75
|
+
|
76
|
+
The default is `:unpack_jars => true`. Note that you can only apply
|
77
|
+
different unpack behavior for gems which are explicitly included via
|
78
|
+
`with_gem`. Any transitively installed gems will have the default
|
79
|
+
unpack behavior (i.e., unpack every JAR under lib) applied.
|
80
|
+
|
81
|
+
[jruby-openssl]: https://rubygems.org/gems/jruby-openssl
|
82
|
+
|
57
83
|
Caveats
|
58
84
|
-------
|
59
85
|
|
@@ -63,6 +89,9 @@ were named `sinatra.jar`, it would not be possible to `require
|
|
63
89
|
"sinatra"` from it. (This is a general JRuby requirement, not
|
64
90
|
something that's specific to this tool.)
|
65
91
|
|
92
|
+
Embedded JARs will not have any of their metadata (manifests, META-INF
|
93
|
+
service registrations, etc.) preserved if they are unpacked.
|
94
|
+
|
66
95
|
Compatibility
|
67
96
|
-------------
|
68
97
|
|
@@ -99,7 +128,7 @@ For bugs and feature requests, please use the [github issue
|
|
99
128
|
tracker][issues]. For other questions, please use the [buildr users
|
100
129
|
mailing list][buildrusers] or e-mail [me][] directly.
|
101
130
|
|
102
|
-
[issues]: https://github.com/
|
131
|
+
[issues]: https://github.com/NUBIC/buildr-gemjar/issues
|
103
132
|
[buildrusers]: http://buildr.apache.org/mailing_lists.html
|
104
133
|
[me]: mailto:rhett@detailedbalance.net
|
105
134
|
|
data/lib/buildr-gemjar.rb
CHANGED
@@ -1,31 +1,40 @@
|
|
1
1
|
require 'buildr/java/packaging'
|
2
|
+
require 'pathname'
|
2
3
|
|
3
4
|
module BuildrGemjar
|
4
5
|
class GemjarTask < Buildr::Packaging::Java::JarTask
|
6
|
+
DEFAULT_UNPACK_GLOBS = ['lib/**/*.jar']
|
7
|
+
|
5
8
|
def initialize(*args)
|
6
9
|
super
|
7
|
-
@target = File.expand_path("../gem_home", self.to_s)
|
10
|
+
@target = Pathname.new File.expand_path("../gem_home", self.to_s)
|
8
11
|
# It doesn't seem like this should be necessary or useful --
|
9
12
|
# the directory is also created by a task dependency.
|
10
13
|
# However, if it isn't here, the file gem dependency is not
|
11
14
|
# correctly taken into account. (Try commenting it out and
|
12
15
|
# running the specs.)
|
13
|
-
|
16
|
+
@target.mkpath
|
14
17
|
|
15
18
|
clean
|
16
|
-
include(@target, :as => '.')
|
19
|
+
include(@target.to_s, :as => '.')
|
17
20
|
enhance do
|
18
21
|
install_gems
|
22
|
+
unpack_jars
|
19
23
|
end
|
20
24
|
end
|
21
25
|
|
22
26
|
def with_gem(*args)
|
27
|
+
options = args.last.respond_to?(:has_key?) ? args.pop : {}
|
28
|
+
|
23
29
|
new_gem =
|
24
|
-
if
|
25
|
-
FileSourcedGem.new(
|
30
|
+
if options.has_key?(:file)
|
31
|
+
FileSourcedGem.new(options[:file])
|
26
32
|
else
|
27
33
|
NamedGem.new(args[0], args[1])
|
28
34
|
end
|
35
|
+
|
36
|
+
new_gem.unpack_globs = determine_unpack_globs(options[:unpack_jars])
|
37
|
+
|
29
38
|
gems << new_gem
|
30
39
|
enhance new_gem.dependencies
|
31
40
|
self
|
@@ -86,13 +95,77 @@ module BuildrGemjar
|
|
86
95
|
trace cmd
|
87
96
|
out = %x[#{cmd} 2>&1]
|
88
97
|
trace out
|
89
|
-
if
|
98
|
+
if $? != 0
|
99
|
+
fail "gem invocation failed:\n#{out}"
|
100
|
+
elsif out =~ /ERROR/
|
90
101
|
fail out.split("\n").grep(/ERROR/).join("\n")
|
91
102
|
end
|
92
103
|
end
|
93
104
|
end
|
94
105
|
|
106
|
+
def determine_unpack_globs(unpack_jars_option)
|
107
|
+
unpack_jars_option = true if unpack_jars_option.nil?
|
108
|
+
|
109
|
+
case unpack_jars_option
|
110
|
+
when true
|
111
|
+
DEFAULT_UNPACK_GLOBS
|
112
|
+
when false
|
113
|
+
[]
|
114
|
+
else
|
115
|
+
[*unpack_jars_option]
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def unpack_jars
|
120
|
+
all_gem_roots = (gem_home + 'gems').children
|
121
|
+
requested_gem_roots = gems.collect { |gem| gem.install_root(gem_home) }.compact
|
122
|
+
other_gem_roots = all_gem_roots - requested_gem_roots
|
123
|
+
|
124
|
+
FileUtils.cd gem_home do
|
125
|
+
other_gem_roots.each do |root|
|
126
|
+
unpack_gem_jars(root, DEFAULT_UNPACK_GLOBS)
|
127
|
+
end
|
128
|
+
gems.each do |gem|
|
129
|
+
unpack_gem_jars(gem.install_root(gem_home), gem.unpack_globs)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def unpack_gem_jars(installed_root, jar_globs)
|
135
|
+
jar_globs.each do |glob|
|
136
|
+
Dir[installed_root + glob].each do |jar|
|
137
|
+
trace "Unpacking #{jar}"
|
138
|
+
cmd = [
|
139
|
+
'jar',
|
140
|
+
'xf',
|
141
|
+
jar
|
142
|
+
].join(' ')
|
143
|
+
trace cmd
|
144
|
+
out = %x[#{cmd} 2>&1]
|
145
|
+
if $? != 0
|
146
|
+
fail "jar extraction failed:\n#{out}"
|
147
|
+
else
|
148
|
+
trace out
|
149
|
+
end
|
150
|
+
FileUtils.rm_rf 'META-INF'
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
module GemProperties
|
156
|
+
attr_accessor :unpack_globs
|
157
|
+
|
158
|
+
##
|
159
|
+
# If the gem is installed in the given gem home, this method
|
160
|
+
# gives the path to its expanded root under `{gem_home}/gems`.
|
161
|
+
def install_root(gem_home)
|
162
|
+
(gem_home + 'gems').children.detect { |p| p.to_s =~ /#{name}-#{version}/ }
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
95
166
|
class FileSourcedGem
|
167
|
+
include GemProperties
|
168
|
+
|
96
169
|
attr_accessor :filename
|
97
170
|
|
98
171
|
def initialize(filename)
|
@@ -108,9 +181,26 @@ module BuildrGemjar
|
|
108
181
|
def dependencies
|
109
182
|
[(filename if File.exist?(filename))].compact
|
110
183
|
end
|
184
|
+
|
185
|
+
def name
|
186
|
+
spec.name
|
187
|
+
end
|
188
|
+
|
189
|
+
def version
|
190
|
+
spec.version
|
191
|
+
end
|
192
|
+
|
193
|
+
def spec
|
194
|
+
require 'rubygems/specification'
|
195
|
+
|
196
|
+
@spec ||= YAML.load(`tar xOf '#{filename}' metadata.gz | gunzip`)
|
197
|
+
end
|
198
|
+
private :spec
|
111
199
|
end
|
112
200
|
|
113
201
|
class NamedGem
|
202
|
+
include GemProperties
|
203
|
+
|
114
204
|
attr_accessor :name, :version
|
115
205
|
|
116
206
|
def initialize(name, version)
|
@@ -160,8 +250,8 @@ module BuildrGemjar
|
|
160
250
|
jruby = project.artifact(BuildrGemjar.jruby_artifact)
|
161
251
|
project.packages.each do |pkg|
|
162
252
|
if pkg.is_a?(GemjarTask)
|
163
|
-
directory pkg.gem_home
|
164
|
-
pkg.enhance [pkg.gem_home, jruby]
|
253
|
+
directory pkg.gem_home.to_s
|
254
|
+
pkg.enhance [pkg.gem_home.to_s, jruby]
|
165
255
|
BuildrGemjar.jruby_complete_jar = jruby.to_s
|
166
256
|
end
|
167
257
|
end
|
data/spec/buildr-gemjar_spec.rb
CHANGED
@@ -45,6 +45,58 @@ describe ":gemjar packaging" do
|
|
45
45
|
|
46
46
|
actual_gems.collect { |g| g.kind }.should == [:named, :file, :named]
|
47
47
|
end
|
48
|
+
|
49
|
+
describe ':unpack_jars' do
|
50
|
+
shared_examples_for 'a gem with unpack behavior' do
|
51
|
+
let(:gem) {
|
52
|
+
a = args
|
53
|
+
define('foo', :version => '1.0') {
|
54
|
+
package(:gemjar).with_gem(*a)
|
55
|
+
}
|
56
|
+
actual_gems.first
|
57
|
+
}
|
58
|
+
|
59
|
+
it 'defaults to true' do
|
60
|
+
gem.unpack_globs.should == ['lib/**/*.jar']
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'interprets true as "lib/**/*.jar"' do
|
64
|
+
args.last[:unpack_jars] = true
|
65
|
+
gem.unpack_globs.should == ['lib/**/*.jar']
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'interprets false as no globs' do
|
69
|
+
args.last[:unpack_jars] = false
|
70
|
+
gem.unpack_globs.should == []
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'passes through an array' do
|
74
|
+
expected = %w(lib/shared/*.jar ext/**/*.jar)
|
75
|
+
args.last[:unpack_jars] = expected
|
76
|
+
|
77
|
+
gem.unpack_globs.should == expected
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'wraps a single value into an array' do
|
81
|
+
expected = 'ext/**/*.jar'
|
82
|
+
args.last[:unpack_jars] = expected
|
83
|
+
|
84
|
+
gem.unpack_globs.should == [expected]
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe 'with a named gem' do
|
89
|
+
let(:args) { ['jruby-openssl', '0.7.5', {}] }
|
90
|
+
|
91
|
+
it_behaves_like 'a gem with unpack behavior'
|
92
|
+
end
|
93
|
+
|
94
|
+
describe 'with a file-sourced gem' do
|
95
|
+
let(:args) { [{ :file => 'snapshot.gem' }] }
|
96
|
+
|
97
|
+
it_behaves_like 'a gem with unpack behavior'
|
98
|
+
end
|
99
|
+
end
|
48
100
|
end
|
49
101
|
|
50
102
|
describe "sources" do
|
@@ -190,11 +242,27 @@ describe ":gemjar packaging" do
|
|
190
242
|
File.exist?(path).should be_true
|
191
243
|
end
|
192
244
|
|
245
|
+
def manifest_text_from(jarfile)
|
246
|
+
require 'zip/zipfilesystem'
|
247
|
+
|
248
|
+
Zip::ZipFile.open(jarfile) do |zfs|
|
249
|
+
zfs.file.read('META-INF/MANIFEST.MF')
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
it 'includes directly specified manifest properties' do
|
254
|
+
actual = test_package { |p|
|
255
|
+
p.with_gem('a').with :manifest => { 'Bundle-SymbolicName' => 'foo-bar' }
|
256
|
+
}
|
257
|
+
|
258
|
+
manifest_text_from(actual).should include("Bundle-SymbolicName: foo-bar")
|
259
|
+
end
|
260
|
+
|
193
261
|
describe "with gems in GEM_PATH" do
|
194
262
|
before do
|
195
263
|
gem_path_entry = tmp('gem_path')
|
196
264
|
system("GEM_HOME='#{gem_path_entry}' gem install --source 'file://#{repo_path}' --no-rdoc --no-ri -q a > '#{tmp('install_out')}'")
|
197
|
-
ENV['GEM_PATH'] = gem_path_entry
|
265
|
+
ENV['GEM_PATH'] = gem_path_entry.to_s
|
198
266
|
end
|
199
267
|
|
200
268
|
it "installs all dependencies, including ones in the GEM_PATH" do
|
@@ -202,6 +270,73 @@ describe ":gemjar packaging" do
|
|
202
270
|
should be_a_jar_containing("specifications/a-1.0.gemspec")
|
203
271
|
end
|
204
272
|
end
|
273
|
+
|
274
|
+
describe 'with jars to unpack' do
|
275
|
+
shared_examples_for 'a gem including jars' do
|
276
|
+
let(:pkg) { test_package { |p| p.with_gem(*args).with :manifest => { 'Foo' => 'Bar' } } }
|
277
|
+
|
278
|
+
it 'unpacks jars under lib by default' do
|
279
|
+
pkg.should be_a_jar_containing('org/example/jr/lib.properties')
|
280
|
+
end
|
281
|
+
|
282
|
+
it 'does not unpack other jars by default' do
|
283
|
+
pkg.should_not be_a_jar_containing('org/example/jr/ext.properties')
|
284
|
+
end
|
285
|
+
|
286
|
+
describe 'with a glob' do
|
287
|
+
before do
|
288
|
+
args.last[:unpack_jars] = 'ext/**/*.jar'
|
289
|
+
end
|
290
|
+
|
291
|
+
it 'unpacks the requested jars' do
|
292
|
+
pkg.should be_a_jar_containing('org/example/jr/ext.properties')
|
293
|
+
end
|
294
|
+
|
295
|
+
it 'does not unpack other jars' do
|
296
|
+
pkg.should_not be_a_jar_containing('org/example/jr/lib.properties')
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
it 'unpacks everything for each glob' do
|
301
|
+
args.last[:unpack_jars] = ['ext/**/*.jar', 'lib/*.jar']
|
302
|
+
pkg.should be_a_jar_containing(
|
303
|
+
'org/example/jr/ext.properties', 'org/example/jr/lib.properties')
|
304
|
+
end
|
305
|
+
|
306
|
+
it 'unpacks nothing when :unpack_jars is false' do
|
307
|
+
args.last[:unpack_jars] = false
|
308
|
+
pkg.should_not be_a_jar_containing('org')
|
309
|
+
end
|
310
|
+
|
311
|
+
it 'does not include the manifest from unpacked jars' do
|
312
|
+
manifest_text_from(pkg).should_not include('Main-Class')
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
describe 'a named gem' do
|
317
|
+
let(:args) { ['jr', '1.0', {}] }
|
318
|
+
|
319
|
+
it_behaves_like 'a gem including jars'
|
320
|
+
end
|
321
|
+
|
322
|
+
describe 'a file-sourced gem' do
|
323
|
+
let(:args) { [{ :file => (repo_path + 'gems' + 'jr-1.0-java.gem').to_s}] }
|
324
|
+
|
325
|
+
it_behaves_like 'a gem including jars'
|
326
|
+
end
|
327
|
+
|
328
|
+
describe 'with jars in dependencies' do
|
329
|
+
let(:pkg) { test_package { |p| p.with_gem('jr-user') } }
|
330
|
+
|
331
|
+
it 'unpacks jars under lib' do
|
332
|
+
pkg.should be_a_jar_containing('org/example/jr/lib.properties')
|
333
|
+
end
|
334
|
+
|
335
|
+
it 'does not unpack other jars' do
|
336
|
+
pkg.should_not be_a_jar_containing('org/example/jr/ext.properties')
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
205
340
|
end
|
206
341
|
end
|
207
342
|
|
data/spec/repo_builder.rb
CHANGED
@@ -23,26 +23,70 @@ module BuildrGemjar
|
|
23
23
|
create_gem "jr", "1.0" do |s|
|
24
24
|
s.platform = 'java'
|
25
25
|
s.add_dependency "b"
|
26
|
+
s.files = [
|
27
|
+
create_jar('lib/jr.jar', %w(org/example/jr/lib.properties), 'org.example.jar.Main'),
|
28
|
+
create_jar('ext/jr.jar', %w(org/example/jr/ext.properties))
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
create_gem 'jr-user' do |s|
|
33
|
+
s.add_dependency 'jr'
|
26
34
|
end
|
27
35
|
|
28
36
|
`gem generate_index -q --directory '#{repo_path}'`
|
29
37
|
end
|
30
38
|
|
31
39
|
def create_gem(name, version='1.0', opts={})
|
32
|
-
spec = Gem::Specification.new do |s|
|
33
|
-
s.name = name
|
34
|
-
s.version = version
|
35
|
-
s.summary = "A fake #{name}"
|
36
|
-
end
|
37
|
-
yield spec if block_given?
|
38
|
-
|
39
40
|
target = opts[:path] || repo_path.join("gems")
|
40
41
|
mkdir_p target
|
41
42
|
cd target do
|
43
|
+
spec = Gem::Specification.new do |s|
|
44
|
+
s.name = name
|
45
|
+
s.version = version
|
46
|
+
s.summary = "A fake #{name}"
|
47
|
+
end
|
48
|
+
yield spec if block_given?
|
49
|
+
|
50
|
+
Gem.configuration.verbose = false
|
42
51
|
Gem::Builder.new(spec).build
|
52
|
+
Gem.configuration.verbose = true
|
53
|
+
|
54
|
+
spec.files.each do |f|
|
55
|
+
rm_rf f
|
56
|
+
end
|
43
57
|
end
|
44
58
|
end
|
45
59
|
|
60
|
+
# main_class is an option because it's a cheap way to get
|
61
|
+
# something specific to this jar into the manifest
|
62
|
+
def create_jar(path, filenames, main_class=nil)
|
63
|
+
mkdir File.dirname(path)
|
64
|
+
|
65
|
+
staging = tmp('jar-staging')
|
66
|
+
staging.mkpath
|
67
|
+
filenames.each do |fn|
|
68
|
+
pn = staging + fn
|
69
|
+
pn.dirname.mkpath
|
70
|
+
pn.open('w') { }
|
71
|
+
end
|
72
|
+
|
73
|
+
cmd = [
|
74
|
+
'jar',
|
75
|
+
main_class ? 'cfe' : 'cf',
|
76
|
+
"'#{path}'",
|
77
|
+
main_class,
|
78
|
+
"-C",
|
79
|
+
"'#{staging}'",
|
80
|
+
'.'
|
81
|
+
].compact.join(' ')
|
82
|
+
|
83
|
+
out = %x[#{cmd} 2>&1]
|
84
|
+
fail "create_jar failed:\n#{out}" unless $? == 0
|
85
|
+
|
86
|
+
staging.rmtree
|
87
|
+
path
|
88
|
+
end
|
89
|
+
|
46
90
|
def tmp(*path)
|
47
91
|
Pathname.new(File.expand_path("../../tmp", __FILE__)).join(*path)
|
48
92
|
end
|
metadata
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
name: buildr-gemjar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
hash: 19
|
5
|
-
prerelease:
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.2
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rhett Sutphin
|
@@ -15,13 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-02-09 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
@@ -31,12 +29,12 @@ dependencies:
|
|
31
29
|
- 0
|
32
30
|
- 6
|
33
31
|
version: "0.6"
|
32
|
+
requirement: *id001
|
34
33
|
type: :development
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: ci_reporter
|
34
|
+
name: braid
|
38
35
|
prerelease: false
|
39
|
-
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
38
|
none: false
|
41
39
|
requirements:
|
42
40
|
- - ~>
|
@@ -46,12 +44,12 @@ dependencies:
|
|
46
44
|
- 1
|
47
45
|
- 6
|
48
46
|
version: "1.6"
|
47
|
+
requirement: *id002
|
49
48
|
type: :development
|
50
|
-
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: rake
|
49
|
+
name: ci_reporter
|
53
50
|
prerelease: false
|
54
|
-
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
53
|
none: false
|
56
54
|
requirements:
|
57
55
|
- - "="
|
@@ -62,12 +60,12 @@ dependencies:
|
|
62
60
|
- 8
|
63
61
|
- 7
|
64
62
|
version: 0.8.7
|
63
|
+
requirement: *id003
|
65
64
|
type: :development
|
66
|
-
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: builder
|
65
|
+
name: rake
|
69
66
|
prerelease: false
|
70
|
-
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
71
69
|
none: false
|
72
70
|
requirements:
|
73
71
|
- - "="
|
@@ -78,12 +76,12 @@ dependencies:
|
|
78
76
|
- 1
|
79
77
|
- 2
|
80
78
|
version: 2.1.2
|
79
|
+
requirement: *id004
|
81
80
|
type: :development
|
82
|
-
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: net-ssh
|
81
|
+
name: builder
|
85
82
|
prerelease: false
|
86
|
-
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
87
85
|
none: false
|
88
86
|
requirements:
|
89
87
|
- - "="
|
@@ -94,12 +92,12 @@ dependencies:
|
|
94
92
|
- 0
|
95
93
|
- 23
|
96
94
|
version: 2.0.23
|
95
|
+
requirement: *id005
|
97
96
|
type: :development
|
98
|
-
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: net-sftp
|
97
|
+
name: net-ssh
|
101
98
|
prerelease: false
|
102
|
-
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
103
101
|
none: false
|
104
102
|
requirements:
|
105
103
|
- - "="
|
@@ -110,12 +108,12 @@ dependencies:
|
|
110
108
|
- 0
|
111
109
|
- 4
|
112
110
|
version: 2.0.4
|
111
|
+
requirement: *id006
|
113
112
|
type: :development
|
114
|
-
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: rubyzip
|
113
|
+
name: net-sftp
|
117
114
|
prerelease: false
|
118
|
-
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
119
117
|
none: false
|
120
118
|
requirements:
|
121
119
|
- - "="
|
@@ -126,12 +124,12 @@ dependencies:
|
|
126
124
|
- 9
|
127
125
|
- 4
|
128
126
|
version: 0.9.4
|
127
|
+
requirement: *id007
|
129
128
|
type: :development
|
130
|
-
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: highline
|
129
|
+
name: rubyzip
|
133
130
|
prerelease: false
|
134
|
-
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
135
133
|
none: false
|
136
134
|
requirements:
|
137
135
|
- - "="
|
@@ -142,12 +140,12 @@ dependencies:
|
|
142
140
|
- 5
|
143
141
|
- 1
|
144
142
|
version: 1.5.1
|
143
|
+
requirement: *id008
|
145
144
|
type: :development
|
146
|
-
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: json_pure
|
145
|
+
name: highline
|
149
146
|
prerelease: false
|
150
|
-
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
151
149
|
none: false
|
152
150
|
requirements:
|
153
151
|
- - "="
|
@@ -158,12 +156,12 @@ dependencies:
|
|
158
156
|
- 4
|
159
157
|
- 3
|
160
158
|
version: 1.4.3
|
159
|
+
requirement: *id009
|
161
160
|
type: :development
|
162
|
-
|
163
|
-
- !ruby/object:Gem::Dependency
|
164
|
-
name: rubyforge
|
161
|
+
name: json_pure
|
165
162
|
prerelease: false
|
166
|
-
|
163
|
+
- !ruby/object:Gem::Dependency
|
164
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
167
165
|
none: false
|
168
166
|
requirements:
|
169
167
|
- - "="
|
@@ -174,12 +172,12 @@ dependencies:
|
|
174
172
|
- 0
|
175
173
|
- 3
|
176
174
|
version: 2.0.3
|
175
|
+
requirement: *id010
|
177
176
|
type: :development
|
178
|
-
|
179
|
-
- !ruby/object:Gem::Dependency
|
180
|
-
name: hoe
|
177
|
+
name: rubyforge
|
181
178
|
prerelease: false
|
182
|
-
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
183
181
|
none: false
|
184
182
|
requirements:
|
185
183
|
- - "="
|
@@ -190,12 +188,12 @@ dependencies:
|
|
190
188
|
- 3
|
191
189
|
- 3
|
192
190
|
version: 2.3.3
|
191
|
+
requirement: *id011
|
193
192
|
type: :development
|
194
|
-
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: rjb
|
193
|
+
name: hoe
|
197
194
|
prerelease: false
|
198
|
-
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
199
197
|
none: false
|
200
198
|
requirements:
|
201
199
|
- - "="
|
@@ -206,12 +204,12 @@ dependencies:
|
|
206
204
|
- 3
|
207
205
|
- 3
|
208
206
|
version: 1.3.3
|
207
|
+
requirement: *id012
|
209
208
|
type: :development
|
210
|
-
|
211
|
-
- !ruby/object:Gem::Dependency
|
212
|
-
name: atoulme-Antwrap
|
209
|
+
name: rjb
|
213
210
|
prerelease: false
|
214
|
-
|
211
|
+
- !ruby/object:Gem::Dependency
|
212
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
215
213
|
none: false
|
216
214
|
requirements:
|
217
215
|
- - "="
|
@@ -222,12 +220,12 @@ dependencies:
|
|
222
220
|
- 7
|
223
221
|
- 1
|
224
222
|
version: 0.7.1
|
223
|
+
requirement: *id013
|
225
224
|
type: :development
|
226
|
-
|
227
|
-
- !ruby/object:Gem::Dependency
|
228
|
-
name: rspec
|
225
|
+
name: atoulme-Antwrap
|
229
226
|
prerelease: false
|
230
|
-
|
227
|
+
- !ruby/object:Gem::Dependency
|
228
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
231
229
|
none: false
|
232
230
|
requirements:
|
233
231
|
- - ~>
|
@@ -238,12 +236,12 @@ dependencies:
|
|
238
236
|
- 1
|
239
237
|
- 0
|
240
238
|
version: 2.1.0
|
239
|
+
requirement: *id014
|
241
240
|
type: :development
|
242
|
-
|
243
|
-
- !ruby/object:Gem::Dependency
|
244
|
-
name: xml-simple
|
241
|
+
name: rspec
|
245
242
|
prerelease: false
|
246
|
-
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
247
245
|
none: false
|
248
246
|
requirements:
|
249
247
|
- - "="
|
@@ -254,12 +252,12 @@ dependencies:
|
|
254
252
|
- 0
|
255
253
|
- 12
|
256
254
|
version: 1.0.12
|
255
|
+
requirement: *id015
|
257
256
|
type: :development
|
258
|
-
|
259
|
-
- !ruby/object:Gem::Dependency
|
260
|
-
name: minitar
|
257
|
+
name: xml-simple
|
261
258
|
prerelease: false
|
262
|
-
|
259
|
+
- !ruby/object:Gem::Dependency
|
260
|
+
version_requirements: &id016 !ruby/object:Gem::Requirement
|
263
261
|
none: false
|
264
262
|
requirements:
|
265
263
|
- - "="
|
@@ -270,8 +268,10 @@ dependencies:
|
|
270
268
|
- 5
|
271
269
|
- 3
|
272
270
|
version: 0.5.3
|
271
|
+
requirement: *id016
|
273
272
|
type: :development
|
274
|
-
|
273
|
+
name: minitar
|
274
|
+
prerelease: false
|
275
275
|
description:
|
276
276
|
email:
|
277
277
|
- rhett@detailedbalance.net
|
@@ -563,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
563
563
|
requirements: []
|
564
564
|
|
565
565
|
rubyforge_project: buildr-gemjar
|
566
|
-
rubygems_version: 1.
|
566
|
+
rubygems_version: 1.3.7
|
567
567
|
signing_key:
|
568
568
|
specification_version: 3
|
569
569
|
summary: Provides buildr support for packaging gems in a JAR for JRuby
|