maven-tools 0.33.5 → 0.34.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/lib/maven/tools/artifact.rb +10 -0
- data/lib/maven/tools/coordinate.rb +17 -8
- data/lib/maven/tools/dsl.rb +55 -25
- data/lib/maven/tools/jarfile.rb +8 -2
- data/lib/maven/tools/pom.rb +21 -4
- data/lib/maven/tools/version.rb +1 -1
- data/spec/coordinate_spec.rb +17 -3
- metadata +2 -2
data/lib/maven/tools/artifact.rb
CHANGED
@@ -134,6 +134,16 @@ module Maven
|
|
134
134
|
[ self[:group_id], self[:artifact_id], self[:version], self[:classifier] ].select { |o| o }.join( ':' )
|
135
135
|
end
|
136
136
|
|
137
|
+
def exclusions
|
138
|
+
if key?( :exclusions )
|
139
|
+
self[:exclusions].inspect.gsub( /[\[\]" ]/, '' ).split /,/
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def to_coordinate
|
144
|
+
[ self[:group_id], self[:artifact_id], self[:type], self[:classifier], self[:version] ].select { |o| o }.join( ':' )
|
145
|
+
end
|
146
|
+
|
137
147
|
def to_s
|
138
148
|
[ self[:group_id], self[:artifact_id], self[:type], self[:classifier], self[:version], key?( :exclusions )? self[:exclusions].inspect.gsub( /[" ]/, '' ) : nil ].select { |o| o }.join( ':' )
|
139
149
|
end
|
@@ -120,29 +120,38 @@ module Maven
|
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
|
+
def snapshot_version( val )
|
125
|
+
if val.match /[a-z]|[A-Z]/ and not val.match /-SNAPSHOT|[${}]/
|
126
|
+
val + '-SNAPSHOT'
|
127
|
+
else
|
128
|
+
val
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
124
132
|
def convert(arg, low = nil, high = nil)
|
125
133
|
if arg =~ /~>/
|
126
134
|
val = arg.sub(/~>\s*/, '')
|
127
135
|
last = val.sub(/\.[0-9]*[a-z]+.*$/, '').sub(/\.[^.]+$/, '.99999')
|
128
|
-
["[#{val}", "#{last}]"]
|
136
|
+
["[#{snapshot_version(val)}", "#{snapshot_version(last)}]"]
|
129
137
|
elsif arg =~ />=/
|
130
138
|
val = arg.sub(/>=\s*/, '')
|
131
|
-
["[#{val}", (nil || high)]
|
139
|
+
["[#{snapshot_version(val)}", (nil || high)]
|
132
140
|
elsif arg =~ /<=/
|
133
141
|
val = arg.sub(/<=\s*/, '')
|
134
|
-
[(nil || low), "#{val}]"]
|
142
|
+
[(nil || low), "#{snapshot_version(val)}]"]
|
135
143
|
# treat '!' the same way as '>' since maven can not describe such range
|
136
144
|
elsif arg =~ /[!>]/
|
137
145
|
val = arg.sub(/[!>]\s*/, '')
|
138
|
-
["(#{val}", (nil || high)]
|
146
|
+
["(#{snapshot_version(val)}", (nil || high)]
|
139
147
|
elsif arg =~ /</
|
140
148
|
val = arg.sub(/<\s*/, '')
|
141
|
-
[(nil || low), "#{val})"]
|
149
|
+
[(nil || low), "#{snapshot_version(val)})"]
|
142
150
|
elsif arg =~ /\=/
|
143
151
|
val = arg.sub(/=\s*/, '')
|
144
|
-
["["
|
145
|
-
|
152
|
+
["[#{snapshot_version(val)}", val + '.0.0.0.0.1)']
|
153
|
+
else
|
154
|
+
# no conversion here, i.e. assume maven version
|
146
155
|
[arg, arg]
|
147
156
|
end
|
148
157
|
end
|
data/lib/maven/tools/dsl.rb
CHANGED
@@ -135,6 +135,10 @@ module Maven
|
|
135
135
|
repository( 'http://rubygems-proxy.torquebox.org/releases',
|
136
136
|
:id => 'rubygems-releases' )
|
137
137
|
end
|
138
|
+
unless model.repositories.detect { |r| r.id == 'rubygems-prereleases' }
|
139
|
+
snapshot_repository( 'http://rubygems-proxy.torquebox.org/prereleases',
|
140
|
+
:id => 'rubygems-prereleases' )
|
141
|
+
end
|
138
142
|
|
139
143
|
setup_jruby_plugins_version
|
140
144
|
|
@@ -215,11 +219,6 @@ module Maven
|
|
215
219
|
end
|
216
220
|
|
217
221
|
def gemspec( name = nil, options = @gemfile_options || {} )
|
218
|
-
unless model.properties.member?( 'project.build.sourceEncoding' )
|
219
|
-
properties( 'project.build.sourceEncoding' => 'utf-8' )
|
220
|
-
end
|
221
|
-
|
222
|
-
@gemfile_options = nil
|
223
222
|
if name.is_a? Hash
|
224
223
|
options = name
|
225
224
|
name = nil
|
@@ -233,13 +232,32 @@ module Maven
|
|
233
232
|
name = gemspecs.first
|
234
233
|
end
|
235
234
|
spec = nil
|
236
|
-
|
237
|
-
|
235
|
+
spec_file = File.read( File.expand_path( name ) )
|
236
|
+
begin
|
237
|
+
FileUtils.cd( basedir ) do
|
238
|
+
# TODO jruby java user.dir
|
239
|
+
spec = eval( spec_file )
|
240
|
+
end
|
241
|
+
rescue
|
242
|
+
spec = Gem::Specification.from_yaml( spec_file )
|
238
243
|
end
|
244
|
+
|
245
|
+
self.spec( spec, name, options )
|
246
|
+
end
|
247
|
+
|
248
|
+
def spec( spec, name = nil, options = {} )
|
249
|
+
name ||= "#{spec.name}-#{spec.version}.gemspec"
|
250
|
+
unless model.properties.member?( 'project.build.sourceEncoding' )
|
251
|
+
properties( 'project.build.sourceEncoding' => 'utf-8' )
|
252
|
+
end
|
253
|
+
|
254
|
+
@gemfile_options = nil
|
239
255
|
|
240
256
|
if @context == :project
|
241
257
|
build.directory = '${basedir}/pkg'
|
242
|
-
|
258
|
+
version = spec.version.to_s
|
259
|
+
version += '-SNAPSHOT' if spec.version.prerelease?
|
260
|
+
id "rubygems:#{spec.name}:#{version}"
|
243
261
|
name( spec.summary || spec.name )
|
244
262
|
description spec.description
|
245
263
|
packaging 'gem'
|
@@ -478,24 +496,26 @@ module Maven
|
|
478
496
|
end
|
479
497
|
|
480
498
|
def snapshot_repository( url, options = {}, &block )
|
499
|
+
options[ :releases ] = false unless options.key?( :releases ) || options.key?( 'releases' )
|
500
|
+
options[ :snapshots ] = true unless options.key?( :snapshots ) || options.key?( 'snapshots' )
|
481
501
|
do_repository( :snapshot_repository=, url, options, block )
|
482
502
|
end
|
483
503
|
|
484
504
|
def releases( config )
|
485
|
-
respository_policy(
|
505
|
+
@current.releases = respository_policy( config )
|
486
506
|
end
|
487
507
|
|
488
508
|
def snapshots( config )
|
489
|
-
respository_policy(
|
509
|
+
@current.snapshots = respository_policy( config )
|
490
510
|
end
|
491
511
|
|
492
|
-
def
|
512
|
+
def repository_policy( config )
|
493
513
|
rp = RepositoryPolicy.new
|
494
514
|
case config
|
495
515
|
when Hash
|
496
|
-
rp.enabled =
|
497
|
-
rp.update_policy =
|
498
|
-
rp.checksum_policy =
|
516
|
+
rp.enabled = config[ :enabled ]
|
517
|
+
rp.update_policy = config[ :update ]
|
518
|
+
rp.checksum_policy = config[ :checksum ]
|
499
519
|
when TrueClass
|
500
520
|
rp.enabled = true
|
501
521
|
when FalseClass
|
@@ -503,7 +523,7 @@ module Maven
|
|
503
523
|
else
|
504
524
|
rp.enabled = 'true' == config
|
505
525
|
end
|
506
|
-
|
526
|
+
rp
|
507
527
|
end
|
508
528
|
|
509
529
|
def args_and_options( *args )
|
@@ -564,13 +584,21 @@ module Maven
|
|
564
584
|
end
|
565
585
|
end
|
566
586
|
|
567
|
-
def
|
587
|
+
def do_jruby_plugin( method, *gav, &block )
|
568
588
|
gav[ 0 ] = "de.saumya.mojo:#{gav[ 0 ]}-maven-plugin"
|
569
589
|
if gav.size == 1 || gav[ 1 ].is_a?( Hash )
|
570
590
|
setup_jruby_plugins_version
|
571
591
|
gav.insert( 1, '${jruby.plugins.version}' )
|
572
592
|
end
|
573
|
-
|
593
|
+
send( method, *gav, &block )
|
594
|
+
end
|
595
|
+
|
596
|
+
def jruby_plugin( *gav, &block )
|
597
|
+
do_jruby_plugin( :plugin, *gav, &block )
|
598
|
+
end
|
599
|
+
|
600
|
+
def jruby_plugin!( *gav, &block )
|
601
|
+
do_jruby_plugin( :plugin!, *gav, &block )
|
574
602
|
end
|
575
603
|
|
576
604
|
def plugin!( *gav, &block )
|
@@ -991,15 +1019,17 @@ module Maven
|
|
991
1019
|
r = DeploymentRepository.new
|
992
1020
|
else
|
993
1021
|
r = Repository.new
|
1022
|
+
c = options.delete( :snapshots )
|
1023
|
+
c = options.delete( 'snapshots' ) if c.nil?
|
1024
|
+
unless c.nil?
|
1025
|
+
r.snapshot = repository_policy( c )
|
1026
|
+
end
|
1027
|
+
c = options.delete( :releases )
|
1028
|
+
c = options.delete( 'releases' ) if c.nil?
|
1029
|
+
unless c.nil?
|
1030
|
+
r.releases = repository_policy( c )
|
1031
|
+
end
|
994
1032
|
end
|
995
|
-
# if config = ( options.delete( :snapshot ) ||
|
996
|
-
# options.delete( 'snapshot' ) )
|
997
|
-
# r.snapshot( repository_policy( config ) )
|
998
|
-
# end
|
999
|
-
# if config = ( options.delete( :release ) ||
|
1000
|
-
# options.delete( 'release' ) )
|
1001
|
-
# r.snapshot( repository_policy( config ) )
|
1002
|
-
# end
|
1003
1033
|
nested_block( :repository, r, block ) if block
|
1004
1034
|
options.merge!( :url => url )
|
1005
1035
|
fill_options( r, options )
|
data/lib/maven/tools/jarfile.rb
CHANGED
@@ -140,12 +140,18 @@ module Maven
|
|
140
140
|
if block
|
141
141
|
block.call( dsl )
|
142
142
|
end
|
143
|
+
# TODO all that container stuff needs to go into jbundler !!!
|
143
144
|
if container
|
144
145
|
dsl.artifacts.each do |a|
|
145
146
|
if path = a[ :system_path ]
|
146
147
|
container.add_local_jar( path )
|
147
|
-
elsif not locked?( a.
|
148
|
-
|
148
|
+
elsif not locked?( coord = a.to_coordinate )
|
149
|
+
if exclusions = a.exclusions
|
150
|
+
container.add_artifact_with_exclusions( coord,
|
151
|
+
exclusions )
|
152
|
+
else
|
153
|
+
container.add_artifact( coord )
|
154
|
+
end
|
149
155
|
end
|
150
156
|
end
|
151
157
|
dsl.repositories.each do |repo|
|
data/lib/maven/tools/pom.rb
CHANGED
@@ -24,13 +24,20 @@ require 'stringio'
|
|
24
24
|
require 'maven/tools/model'
|
25
25
|
require 'maven/tools/dsl'
|
26
26
|
require 'maven/tools/visitor'
|
27
|
+
require 'rubygems/specification'
|
27
28
|
|
28
29
|
module Maven
|
29
30
|
module Tools
|
30
31
|
class POM
|
31
32
|
include Maven::Tools::DSL
|
32
33
|
|
33
|
-
def
|
34
|
+
def eval_spec( s )
|
35
|
+
@model = tesla do
|
36
|
+
spec s
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def eval_file( file )
|
34
41
|
if file && File.directory?( file )
|
35
42
|
dir = file
|
36
43
|
file = nil
|
@@ -46,9 +53,19 @@ module Maven
|
|
46
53
|
file ||= pom_file( '*.gemspec', dir )
|
47
54
|
end
|
48
55
|
|
49
|
-
|
50
|
-
|
51
|
-
|
56
|
+
if file
|
57
|
+
FileUtils.cd( dir ) do
|
58
|
+
@model = to_model( File.basename( file ) )
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def initialize( file = nil )
|
64
|
+
if file.is_a? Gem::Specification
|
65
|
+
eval_spec( file )
|
66
|
+
else
|
67
|
+
eval_file( file )
|
68
|
+
end
|
52
69
|
end
|
53
70
|
|
54
71
|
def pom_file( pom, dir = '.' )
|
data/lib/maven/tools/version.rb
CHANGED
data/spec/coordinate_spec.rb
CHANGED
@@ -11,16 +11,22 @@ describe Maven::Tools::Coordinate do
|
|
11
11
|
it 'should convert ruby version to maven version ranges' do
|
12
12
|
subject.to_version.must_equal "[0,)"
|
13
13
|
subject.to_version('!2.3.4').must_equal "(2.3.4,)"
|
14
|
+
subject.to_version('!2.3.4.rc').must_equal "(2.3.4.rc-SNAPSHOT,)"
|
14
15
|
subject.to_version('=2.3.4').must_equal "[2.3.4,2.3.4.0.0.0.0.1)"
|
16
|
+
subject.to_version('=2.3.4.alpha').must_equal "[2.3.4.alpha-SNAPSHOT,2.3.4.alpha.0.0.0.0.1)"
|
15
17
|
subject.to_version('~>1.8.2').must_equal "[1.8.2,1.8.99999]"
|
16
|
-
subject.to_version('~>1.8.2.beta').must_equal "[1.8.2.beta,1.8.99999]"
|
17
|
-
subject.to_version('~>1.8.2.beta123.12').must_equal "[1.8.2.beta123.12,1.8.99999]"
|
18
|
-
subject.to_version('~>1.8.2.1beta').must_equal "[1.8.2.1beta,1.8.99999]"
|
18
|
+
subject.to_version('~>1.8.2.beta').must_equal "[1.8.2.beta-SNAPSHOT,1.8.99999]"
|
19
|
+
subject.to_version('~>1.8.2.beta123.12').must_equal "[1.8.2.beta123.12-SNAPSHOT,1.8.99999]"
|
20
|
+
subject.to_version('~>1.8.2.1beta').must_equal "[1.8.2.1beta-SNAPSHOT,1.8.99999]"
|
19
21
|
subject.to_version('~>1.8').must_equal "[1.8,1.99999]"
|
20
22
|
subject.to_version('>1.2').must_equal "(1.2,)"
|
23
|
+
subject.to_version('>1.2.GA').must_equal "(1.2.GA-SNAPSHOT,)"
|
21
24
|
subject.to_version('<1.2').must_equal "[0,1.2)"
|
25
|
+
subject.to_version('<1.2.dev').must_equal "[0,1.2.dev-SNAPSHOT)"
|
22
26
|
subject.to_version('>=1.2').must_equal "[1.2,)"
|
27
|
+
subject.to_version('>=1.2.gamma').must_equal "[1.2.gamma-SNAPSHOT,)"
|
23
28
|
subject.to_version('<=1.2').must_equal "[0,1.2]"
|
29
|
+
subject.to_version('<=1.2.pre').must_equal "[0,1.2.pre-SNAPSHOT]"
|
24
30
|
subject.to_version('>=1.2', '<2.0').must_equal "[1.2,2.0)"
|
25
31
|
subject.to_version('>=1.2', '<=2.0').must_equal "[1.2,2.0]"
|
26
32
|
subject.to_version('>1.2', '<2.0').must_equal "(1.2,2.0)"
|
@@ -35,6 +41,14 @@ describe Maven::Tools::Coordinate do
|
|
35
41
|
subject.to_version('[1,2]').must_equal "[1,2]"
|
36
42
|
end
|
37
43
|
|
44
|
+
it 'should keep maven snapshot version and ranges as they are' do
|
45
|
+
subject.to_version('1.2.3-SNAPSHOT').must_equal "1.2.3-SNAPSHOT"
|
46
|
+
subject.to_version('(1,2-SNAPSHOT)').must_equal "(1,2-SNAPSHOT)"
|
47
|
+
subject.to_version('[1-SNAPSHOT,2)').must_equal "[1-SNAPSHOT,2)"
|
48
|
+
subject.to_version('(1,2-SNAPSHOT]').must_equal "(1,2-SNAPSHOT]"
|
49
|
+
subject.to_version('[1-SNAPSHOT,2]').must_equal "[1-SNAPSHOT,2]"
|
50
|
+
end
|
51
|
+
|
38
52
|
it 'should convert pom of jar deps to maven coordinate' do
|
39
53
|
subject.to_coordinate('something "a:b"').must_be_nil
|
40
54
|
subject.to_coordinate('#jar "a:b"').must_be_nil
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maven-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.34.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: virtus
|