maven-tools 0.30.0 → 0.31.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +21 -1
- data/lib/maven/model/dependencies.rb +10 -11
- data/lib/maven/model/model.rb +1 -1
- data/lib/maven/model/utils.rb +29 -30
- data/lib/maven/tools/coordinate.rb +12 -4
- data/lib/maven/tools/gem_project.rb +7 -2
- data/lib/maven/tools/version.rb +1 -1
- data/lib/maven/tools/versions.rb +1 -1
- data/spec/coordinate_spec.rb +11 -0
- metadata +103 -79
data/README.md
CHANGED
@@ -1 +1,21 @@
|
|
1
|
-
|
1
|
+
maven tools
|
2
|
+
===========
|
3
|
+
|
4
|
+
* [![Build Status](https://secure.travis-ci.org/torquebox/maven-tools.png)](http://travis-ci.org/torquebox/maven-tools)
|
5
|
+
* [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/torquebox/maven-tools)
|
6
|
+
|
7
|
+
|
8
|
+
Contributing
|
9
|
+
------------
|
10
|
+
|
11
|
+
1. Fork it
|
12
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
13
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
14
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
15
|
+
5. Create new Pull Request
|
16
|
+
|
17
|
+
meta-fu
|
18
|
+
-------
|
19
|
+
|
20
|
+
enjoy :)
|
21
|
+
|
@@ -198,18 +198,20 @@ module Maven
|
|
198
198
|
end
|
199
199
|
private :add_gem
|
200
200
|
|
201
|
-
def
|
201
|
+
def add_something(method, args, block = nil)
|
202
202
|
if args.last.is_a?(Hash)
|
203
|
-
raise "hash not allowed for
|
203
|
+
raise "hash not allowed for #{method.to_s.sub /new_/, ''}"
|
204
204
|
end
|
205
|
-
add_dependency(Dependency.
|
205
|
+
add_dependency(Dependency.send( method, *args), *args.size > 1, &block)
|
206
|
+
end
|
207
|
+
private :add_something
|
208
|
+
|
209
|
+
def jar(*args, &block)
|
210
|
+
add_something( :new_jar, args, block )
|
206
211
|
end
|
207
212
|
|
208
213
|
def test_jar(*args, &block)
|
209
|
-
|
210
|
-
raise "hash not allowed for test_jar"
|
211
|
-
end
|
212
|
-
add_dependency(Dependency.new_test_jar(args), args.size > 1, &block)
|
214
|
+
add_something( :new_test_jar, args, block )
|
213
215
|
end
|
214
216
|
|
215
217
|
def gem(*args, &block)
|
@@ -220,10 +222,7 @@ module Maven
|
|
220
222
|
end
|
221
223
|
|
222
224
|
def pom(*args, &block)
|
223
|
-
|
224
|
-
raise "hash not allowed in that context"
|
225
|
-
end
|
226
|
-
add_dependency(Dependency.new_pom(args), args.size > 1, &block)
|
225
|
+
add_something( :new_pom, args, block )
|
227
226
|
end
|
228
227
|
end
|
229
228
|
end
|
data/lib/maven/model/model.rb
CHANGED
@@ -250,7 +250,7 @@ module Maven
|
|
250
250
|
@email = args[2]
|
251
251
|
end
|
252
252
|
@email = @email[0] if @email.is_a? Array # this produces a partial list
|
253
|
-
@id = @email.sub(/@/, '_at_').gsub(/\./, '_dot_') unless @id
|
253
|
+
@id = (@email || @name).sub(/@/, '_at_').gsub(/\./, '_dot_').gsub(/ /, '_') unless @id
|
254
254
|
self
|
255
255
|
end
|
256
256
|
end
|
data/lib/maven/model/utils.rb
CHANGED
@@ -81,7 +81,7 @@ EOF
|
|
81
81
|
when Hash
|
82
82
|
if val.size > 0
|
83
83
|
buf << "#{indent} <#{var}>\n"
|
84
|
-
val.keys.each do |k|
|
84
|
+
val.keys.sort{ |n,m| n.to_s <=> m.to_s }.each do |k|
|
85
85
|
v = val[k]
|
86
86
|
if v.is_a? Tag
|
87
87
|
v.to_xml(buf, indent + " ")
|
@@ -152,48 +152,47 @@ EOF
|
|
152
152
|
default_model.send(method, *args, &block)
|
153
153
|
end
|
154
154
|
end
|
155
|
-
|
156
|
-
class
|
155
|
+
|
156
|
+
class NamedHash < Hash
|
157
157
|
|
158
158
|
def keys
|
159
159
|
@keys ||= []
|
160
160
|
end
|
161
161
|
|
162
|
-
def
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
162
|
+
def new_instance( clazz, args )
|
163
|
+
if args.size == 1 && args[0].is_a?(clazz)
|
164
|
+
args[0]
|
165
|
+
else
|
166
|
+
clazz.new(*args)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def do_get( clazz, args, method, block = nil)
|
171
|
+
value = new_instance( clazz, args )
|
172
|
+
key = value.send method
|
173
|
+
keys << key unless keys.member? key
|
174
|
+
self[ key ] = value
|
170
175
|
if block
|
171
|
-
block.call(
|
176
|
+
block.call( value )
|
172
177
|
end
|
173
|
-
|
178
|
+
value
|
174
179
|
end
|
175
|
-
|
176
|
-
alias :add :get
|
180
|
+
def get; end
|
177
181
|
end
|
178
182
|
|
179
|
-
class
|
183
|
+
class DeveloperHash < NamedHash
|
180
184
|
|
181
|
-
def
|
182
|
-
|
185
|
+
def get( *args, &block )
|
186
|
+
do_get( Developer, args, :id, block )
|
183
187
|
end
|
188
|
+
alias :new :get
|
189
|
+
alias :add :get
|
190
|
+
end
|
184
191
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
License.new(*args)
|
190
|
-
end
|
191
|
-
keys << license.name unless keys.member? license.name
|
192
|
-
self[license.name] = license
|
193
|
-
if block
|
194
|
-
block.call(license)
|
195
|
-
end
|
196
|
-
license
|
192
|
+
class LicenseHash < NamedHash
|
193
|
+
|
194
|
+
def get( *args, &block )
|
195
|
+
do_get( License, args, :name, block )
|
197
196
|
end
|
198
197
|
alias :new :get
|
199
198
|
alias :add :get
|
@@ -4,11 +4,19 @@ module Maven
|
|
4
4
|
|
5
5
|
def to_coordinate(line)
|
6
6
|
if line =~ /^\s*(jar|pom)\s/
|
7
|
-
|
8
|
-
|
7
|
+
packaging = line.strip.sub(/\s+.*/, '')
|
8
|
+
|
9
|
+
# Remove packaging, comments and whitespaces
|
10
|
+
sanitized_line = line.sub(/\s*[a-z]+\s+/, '').sub(/#.*/,'').gsub(/\s+/,'')
|
11
|
+
|
12
|
+
# Remove version(s) and quotes to find the group id, artifact id and classifier
|
13
|
+
group_id, artifact_id, classifier = sanitized_line.split(',')[0].gsub(/['"]/, '').split(/:/)
|
14
|
+
|
15
|
+
# Remove the group id, artifact id and classifier to find the version(s)
|
16
|
+
version, second_version = sanitized_line.split(',')[1..-1].join(',').gsub(/['"],/, ':').gsub(/['"]/, '').split(/:/)
|
9
17
|
mversion = second_version ? to_version(version, second_version) : to_version(version)
|
10
|
-
|
11
|
-
"#{group_id}:#{artifact_id}:#{
|
18
|
+
|
19
|
+
classifier ? "#{group_id}:#{artifact_id}:#{packaging}:#{classifier}:#{mversion}" : "#{group_id}:#{artifact_id}:#{packaging}:#{mversion}"
|
12
20
|
end
|
13
21
|
end
|
14
22
|
|
@@ -54,9 +54,14 @@ module Maven
|
|
54
54
|
name spec.summary || "#{self.artifact_id} - gem"
|
55
55
|
description spec.description if spec.description
|
56
56
|
url spec.homepage if spec.homepage
|
57
|
+
done_authors = []
|
57
58
|
(spec.email || []).zip(spec.authors || []).map do |email, author|
|
59
|
+
done_authors << author
|
58
60
|
self.developers.new(author, email)
|
59
61
|
end
|
62
|
+
(spec.authors - done_authors).each do |author|
|
63
|
+
self.developers.new(author, nil)
|
64
|
+
end
|
60
65
|
|
61
66
|
# TODO work with collection of licenses - there can be more than one !!!
|
62
67
|
(spec.licenses + spec.files.select {|file| file.to_s =~ /license|gpl/i }).each do |license|
|
@@ -338,8 +343,8 @@ module Maven
|
|
338
343
|
options = {
|
339
344
|
:lifecycleMappingMetadata => {
|
340
345
|
:pluginExecutions => Maven::Model::NamedArray.new(:pluginExecution) do |e|
|
341
|
-
# sort them for testing
|
342
|
-
configs.sort {|m,n|
|
346
|
+
# sort them - handy for testing
|
347
|
+
configs.sort {|m,n| m[:pluginExecutionFilter][:artifactId].to_s <=> n[:pluginExecutionFilter][:artifactId].to_s }.each { |c| e << c }
|
343
348
|
end
|
344
349
|
}
|
345
350
|
}
|
data/lib/maven/tools/version.rb
CHANGED
data/lib/maven/tools/versions.rb
CHANGED
@@ -8,7 +8,7 @@ module Maven
|
|
8
8
|
:jar_plugin => "2.4",
|
9
9
|
:jruby_plugins => "0.29.0",
|
10
10
|
:bundler_version => "1.1.4",
|
11
|
-
:jruby_version => defined?(JRUBY_VERSION) ? JRUBY_VERSION : "1.6.
|
11
|
+
:jruby_version => defined?(JRUBY_VERSION) ? JRUBY_VERSION : "1.6.8"
|
12
12
|
}.freeze
|
13
13
|
end
|
14
14
|
end
|
data/spec/coordinate_spec.rb
CHANGED
@@ -44,4 +44,15 @@ describe Maven::Tools::Coordinate do
|
|
44
44
|
subject.to_coordinate('pom "e:f", "[1.8,1.9.9)"').must_equal "e:f:pom:[1.8,1.9.9)"
|
45
45
|
subject.to_coordinate('pom "f:g", ">1.2", "<=2.0"').must_equal "f:g:pom:(1.2,2.0]"
|
46
46
|
end
|
47
|
+
|
48
|
+
it 'should support classifiers' do
|
49
|
+
subject.to_coordinate('something "a:b:jdk15"').must_be_nil
|
50
|
+
subject.to_coordinate('#jar "a:b:jdk15"').must_be_nil
|
51
|
+
subject.to_coordinate('jar "a:b:jdk15" # bla').must_equal "a:b:jar:jdk15:[0,)"
|
52
|
+
subject.to_coordinate("pom 'b:c:jdk15', '!2.3.4'").must_equal "b:c:pom:jdk15:(2.3.4,)"
|
53
|
+
subject.to_coordinate('jar "c:d:jdk15", "2.3.4"').must_equal "c:d:jar:jdk15:2.3.4"
|
54
|
+
subject.to_coordinate("jar 'd:e:jdk15', '~>1.8.2'").must_equal "d:e:jar:jdk15:[1.8.2,1.8.99999]"
|
55
|
+
subject.to_coordinate('pom "e:f:jdk15", "[1.8,1.9.9)"').must_equal "e:f:pom:jdk15:[1.8,1.9.9)"
|
56
|
+
subject.to_coordinate('pom "f:g:jdk15", ">1.2", "<=2.0"').must_equal "f:g:pom:jdk15:(1.2,2.0]"
|
57
|
+
end
|
47
58
|
end
|
metadata
CHANGED
@@ -1,53 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maven-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 99
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 31
|
9
|
+
- 0
|
10
|
+
version: 0.31.0
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
|
-
|
13
|
+
- Kristian Meier
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date:
|
18
|
+
date: 2013-01-20 00:00:00 Z
|
14
19
|
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rake
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 73
|
29
|
+
segments:
|
30
|
+
- 10
|
31
|
+
- 0
|
32
|
+
- 3
|
33
|
+
version: 10.0.3
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: minitest
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 19
|
45
|
+
segments:
|
46
|
+
- 4
|
47
|
+
- 4
|
48
|
+
version: "4.4"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rspec
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 13
|
60
|
+
segments:
|
61
|
+
- 2
|
62
|
+
- 7
|
63
|
+
version: "2.7"
|
64
|
+
type: :development
|
65
|
+
version_requirements: *id003
|
48
66
|
description: adds versions conversion from rubygems to maven and vice versa, ruby DSL for POM (Project Object Model from maven), pom generators, etc
|
49
67
|
email:
|
50
|
-
|
68
|
+
- m.kristian@web.de
|
51
69
|
executables: []
|
52
70
|
|
53
71
|
extensions: []
|
@@ -55,38 +73,38 @@ extensions: []
|
|
55
73
|
extra_rdoc_files: []
|
56
74
|
|
57
75
|
files:
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
76
|
+
- lib/maven_tools.rb
|
77
|
+
- lib/maven-tools.rb
|
78
|
+
- lib/maven-tools.rb~
|
79
|
+
- lib/maven_tools.rb~
|
80
|
+
- lib/maven/jarfile.rb~
|
81
|
+
- lib/maven/tools/coordinate.rb
|
82
|
+
- lib/maven/tools/execute_in_phase.rb
|
83
|
+
- lib/maven/tools/version.rb
|
84
|
+
- lib/maven/tools/jarfile.rb~
|
85
|
+
- lib/maven/tools/jarfile.rb
|
86
|
+
- lib/maven/tools/rails_project.rb
|
87
|
+
- lib/maven/tools/versions.rb~
|
88
|
+
- lib/maven/tools/gem_project.rb
|
89
|
+
- lib/maven/tools/gem_project.rb~
|
90
|
+
- lib/maven/tools/pom_generator.rb
|
91
|
+
- lib/maven/tools/gemfile_lock.rb~
|
92
|
+
- lib/maven/tools/gemfile_lock.rb
|
93
|
+
- lib/maven/tools/minimal_project.rb
|
94
|
+
- lib/maven/tools/coordinate.rb~
|
95
|
+
- lib/maven/tools/versions.rb
|
96
|
+
- lib/maven/model/utils.rb
|
97
|
+
- lib/maven/model/dependencies.rb~
|
98
|
+
- lib/maven/model/model.rb
|
99
|
+
- lib/maven/model/dependencies.rb
|
100
|
+
- lib/maven/model/model_utils.rb~
|
101
|
+
- lib/maven/model/utils.rb~
|
102
|
+
- lib/maven/model/model.rb~
|
103
|
+
- lib/maven/maven_util.rb~
|
104
|
+
- spec/coordinate_spec.rb
|
105
|
+
- spec/jarfile_spec.rb
|
106
|
+
- MIT-LICENSE
|
107
|
+
- README.md
|
90
108
|
homepage: http://github.com/torquebox/maven-tools
|
91
109
|
licenses: []
|
92
110
|
|
@@ -94,26 +112,32 @@ post_install_message:
|
|
94
112
|
rdoc_options: []
|
95
113
|
|
96
114
|
require_paths:
|
97
|
-
|
115
|
+
- lib
|
98
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
117
|
none: false
|
100
118
|
requirements:
|
101
|
-
|
102
|
-
|
103
|
-
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
version: "0"
|
104
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
126
|
none: false
|
106
127
|
requirements:
|
107
|
-
|
108
|
-
|
109
|
-
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
hash: 3
|
131
|
+
segments:
|
132
|
+
- 0
|
133
|
+
version: "0"
|
110
134
|
requirements: []
|
111
135
|
|
112
136
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.8.
|
137
|
+
rubygems_version: 1.8.15
|
114
138
|
signing_key:
|
115
139
|
specification_version: 3
|
116
140
|
summary: helpers for maven related tasks
|
117
141
|
test_files:
|
118
|
-
|
119
|
-
|
142
|
+
- spec/coordinate_spec.rb
|
143
|
+
- spec/jarfile_spec.rb
|