maven-tools 0.30.0 → 0.31.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/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
|
+
* [](http://travis-ci.org/torquebox/maven-tools)
|
5
|
+
* [](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
|