jar-dependencies 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,58 +1,62 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Jars
2
4
  class MavenVersion < String
3
- def self.new(*args)
4
- if args.empty? || (args.size == 1 && args[0].nil?)
5
- nil
6
- else
7
- low, high = convert(args[0])
8
- low, high = convert(args[1], low, high) if args[1] =~ /[=~><]/
9
- if low == high
10
- low
5
+ class << self
6
+ def new(*args)
7
+ if args.empty? || (args.size == 1 && args[0].nil?)
8
+ nil
11
9
  else
12
- super "#{low || '[0'},#{high || ')'}"
10
+ low, high = convert(args[0])
11
+ low, high = convert(args[1], low, high) if /[=~><]/.match?(args[1])
12
+ if low == high
13
+ low
14
+ else
15
+ super "#{low || '[0'},#{high || ')'}"
16
+ end
13
17
  end
14
18
  end
15
- end
16
19
 
17
- private
18
-
19
- def self.convert(arg, low = nil, high = nil)
20
- if arg =~ /~>/
21
- val = arg.sub(/~>\s*/, '')
22
- last = val =~ /\./ ? val.sub(/\.[0-9]*[a-z]+.*$/, '').sub(/\.[^.]+$/, '.99999') : '99999'
23
- ["[#{snapshot_version(val)}", "#{snapshot_version(last)}]"]
24
- elsif arg =~ />=/
25
- val = arg.sub(/>=\s*/, '')
26
- ["[#{snapshot_version(val)}", (nil || high)]
27
- elsif arg =~ /<=/
28
- val = arg.sub(/<=\s*/, '')
29
- [(nil || low), "#{snapshot_version(val)}]"]
30
- # treat '!' the same way as '>' since maven can not describe such range
31
- elsif arg =~ /[!>]/
32
- val = arg.sub(/[!>]\s*/, '')
33
- ["(#{snapshot_version(val)}", (nil || high)]
34
- elsif arg =~ /</
35
- val = arg.sub(/<\s*/, '')
36
- [(nil || low), "#{snapshot_version(val)})"]
37
- elsif arg =~ /\=/
38
- val = arg.sub(/=\s*/, '')
39
- # for prereleased version pick the maven version (no version range)
40
- if val =~ /[a-z]|[A-Z]/
41
- [val, val]
20
+ private
21
+
22
+ def convert(arg, low = nil, high = nil)
23
+ if arg.include?('~>')
24
+ val = arg.sub(/~>\s*/, '')
25
+ last = val.include?('.') ? val.sub(/\.[0-9]*[a-z]+.*$/, '').sub(/\.[^.]+$/, '.99999') : '99999'
26
+ ["[#{snapshot_version(val)}", "#{snapshot_version(last)}]"]
27
+ elsif arg.include?('>=')
28
+ val = arg.sub(/>=\s*/, '')
29
+ ["[#{snapshot_version(val)}", (nil || high)]
30
+ elsif arg.include?('<=')
31
+ val = arg.sub(/<=\s*/, '')
32
+ [(nil || low), "#{snapshot_version(val)}]"]
33
+ # treat '!' the same way as '>' since maven can not describe such range
34
+ elsif /[!>]/.match?(arg)
35
+ val = arg.sub(/[!>]\s*/, '')
36
+ ["(#{snapshot_version(val)}", (nil || high)]
37
+ elsif arg.include?('<')
38
+ val = arg.sub(/<\s*/, '')
39
+ [(nil || low), "#{snapshot_version(val)})"]
40
+ elsif arg.include?('=')
41
+ val = arg.sub(/=\s*/, '')
42
+ # for prereleased version pick the maven version (no version range)
43
+ if /[a-z]|[A-Z]/.match?(val)
44
+ [val, val]
45
+ else
46
+ ["[#{val}", "#{val}.0.0.0.0.1)"]
47
+ end
42
48
  else
43
- ["[#{val}", "#{val}.0.0.0.0.1)"]
49
+ # no conversion here, i.e. assume maven version
50
+ [arg, arg]
44
51
  end
45
- else
46
- # no conversion here, i.e. assume maven version
47
- [arg, arg]
48
52
  end
49
- end
50
53
 
51
- def self.snapshot_version(val)
52
- if val.match(/[a-z]|[A-Z]/) && !val.match(/-SNAPSHOT|[${}]/)
53
- val + '-SNAPSHOT'
54
- else
55
- val
54
+ def snapshot_version(val)
55
+ if val.match(/[a-z]|[A-Z]/) && !val.match(/-SNAPSHOT|[${}]/)
56
+ "#{val}-SNAPSHOT"
57
+ else
58
+ val
59
+ end
56
60
  end
57
61
  end
58
62
  end
@@ -79,7 +83,7 @@ module Jars
79
83
  def initialize(line)
80
84
  super()
81
85
  line.gsub(/'"|^\s*\[|\]\s*$/, '').split(/,\s*/).each do |exclusion|
82
- self.<< Exclusion.new(exclusion)
86
+ self << Exclusion.new(exclusion)
83
87
  end
84
88
  freeze
85
89
  end
@@ -93,7 +97,7 @@ module Jars
93
97
  def initialize(options, *args)
94
98
  @type, @group_id, @artifact_id, @classifier, @version, @exclusions = *args
95
99
  options.each do |k, v|
96
- instance_variable_set("@#{k}", v)
100
+ instance_variable_set(:"@#{k}", v)
97
101
  end
98
102
  end
99
103
 
@@ -101,9 +105,11 @@ module Jars
101
105
  line = line.strip
102
106
  index = line.index(/\s/)
103
107
  return nil if index.nil?
108
+
104
109
  type = line[0..index].strip
105
110
  return nil unless ALLOWED_TYPES.member?(type)
106
- line = line[index..-1]
111
+
112
+ line = line[index..]
107
113
  line.gsub!(/['"]/, '')
108
114
  line.strip!
109
115
 
@@ -118,20 +124,20 @@ module Jars
118
124
  end
119
125
  exclusions = nil
120
126
  line.sub!(/[,:]\s*\[(.+:.+,?\s*)+\]$/) do |a|
121
- exclusions = Exclusions.new(a[1..-1].strip)
127
+ exclusions = Exclusions.new(a[1..].strip)
122
128
  ''
123
129
  end
124
130
 
125
131
  line.strip!
126
132
  line.gsub!(/,\s*/, ':')
127
133
 
128
- if line =~ /[\[\(\)\]]/
129
- index = line.index(/[\[\(].+$/)
130
- version = line[index..-1].sub(/:/, ', ')
134
+ if /[\[()\]]/.match?(line)
135
+ index = line.index(/[\[(].+$/)
136
+ version = line[index..].sub(/:/, ', ')
131
137
  line = line[0..index - 1].strip.sub(/:$/, '')
132
138
  else
133
- index = line.index(/[:][^:]+$/)
134
- version = line[index + 1..-1]
139
+ index = line.index(/:[^:]+$/)
140
+ version = line[index + 1..]
135
141
  line = line[0..index - 1].strip
136
142
  end
137
143
 
@@ -153,7 +159,7 @@ module Jars
153
159
  args << @classifier if @classifier
154
160
  args << @version
155
161
  args << @exclusions.to_s if @exclusions
156
- "#{@type} #{group_id}:#{args[1..-1].join(', ')}"
162
+ "#{@type} #{group_id}:#{args[1..].join(', ')}"
157
163
  end
158
164
 
159
165
  def to_gacv
@@ -190,7 +196,7 @@ module Jars
190
196
  def initialize(spec)
191
197
  @artifacts = []
192
198
  spec.requirements.each do |req|
193
- req.split(/\n/).each do |line|
199
+ req.split("\n").each do |line|
194
200
  if (a = Artifact.new(line))
195
201
  @artifacts << a
196
202
  end
@@ -1,5 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # this file is maven DSL and used by maven via jars/maven_exec.rb
2
4
 
3
- eval(File.read(File.join(File.dirname(__FILE__), 'attach_jars_pom.rb')))
5
+ def eval_file(file)
6
+ file = File.join(__dir__, file)
7
+ eval(File.read(file), nil, file) # rubocop:disable Security/Eval
8
+ end
4
9
 
5
- eval(File.read(File.join(File.dirname(__FILE__), 'output_jars_pom.rb')))
10
+ eval_file('attach_jars_pom.rb')
11
+ eval_file('output_jars_pom.rb')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'jar_dependencies'
2
4
  require 'jars/maven_exec'
3
5
 
@@ -7,7 +9,7 @@ module Jars
7
9
  attr_reader :path, :file, :gav, :scope, :type, :coord
8
10
 
9
11
  def self.new(line)
10
- super if line =~ /:jar:|:pom:/
12
+ super if /:jar:|:pom:/.match?(line)
11
13
  end
12
14
 
13
15
  def setup_type(line)
@@ -32,21 +34,21 @@ module Jars
32
34
  end
33
35
  private :setup_scope
34
36
 
35
- REG = /:jar:|:pom:|:test:|:compile:|:runtime:|:provided:|:system:/
36
- EMPTY = ''.freeze
37
+ REG = /:jar:|:pom:|:test:|:compile:|:runtime:|:provided:|:system:/.freeze
38
+ EMPTY = ''
37
39
  def initialize(line)
38
40
  setup_type(line)
39
41
 
40
42
  line.strip!
41
43
  @coord = line.sub(/:[^:]+:([A-Z]:\\)?[^:]+$/, EMPTY)
42
44
  first, second = @coord.split(/:#{type}:/)
43
- group_id, artifact_id = first.split(/:/)
45
+ group_id, artifact_id = first.split(':')
44
46
  parts = group_id.split('.')
45
47
  parts << artifact_id
46
48
  parts << second.split(':')[-1]
47
49
  @file = line.slice(@coord.length, line.length).sub(REG, EMPTY).strip
48
- last = @file.reverse.index(/\\|\//)
49
- parts << line[-last..-1]
50
+ last = @file.reverse.index(%r{\\|/})
51
+ parts << line[-last..]
50
52
  @path = File.join(parts).strip
51
53
 
52
54
  setup_scope(line)
@@ -60,8 +62,8 @@ module Jars
60
62
  end
61
63
  end
62
64
 
63
- def self.install_jars(write_require_file = false)
64
- new.install_jars(write_require_file)
65
+ def self.install_jars(write_require_file: false)
66
+ new.install_jars(write_require_file: write_require_file)
65
67
  end
66
68
 
67
69
  def self.load_from_maven(file)
@@ -73,76 +75,53 @@ module Jars
73
75
  result
74
76
  end
75
77
 
76
- def self.write_require_file(require_filename)
77
- warn 'deprecated'
78
- if needs_to_write?(require_filename)
79
- FileUtils.mkdir_p(File.dirname(require_filename))
80
- f = File.open(require_filename, 'w')
81
- f.puts COMMENT
82
- f.puts "require 'jar_dependencies'"
83
- f.puts
84
- f
85
- end
86
- end
87
-
88
78
  def self.vendor_file(dir, dep)
89
- if !dep.system? && dep.type == :jar && dep.scope == :runtime
90
- vendored = File.join(dir, dep.path)
91
- FileUtils.mkdir_p(File.dirname(vendored))
92
- FileUtils.cp(dep.file, vendored)
93
- end
94
- end
79
+ return unless !dep.system? && dep.type == :jar && dep.scope == :runtime
95
80
 
96
- def self.write_dep(file, _dir, dep, _vendor)
97
- warn 'deprecated'
98
- print_require_jar(file, dep)
81
+ vendored = File.join(dir, dep.path)
82
+ FileUtils.mkdir_p(File.dirname(vendored))
83
+ FileUtils.cp(dep.file, vendored)
99
84
  end
100
85
 
101
- def self.print_require_jar(file, dep, fallback = false)
86
+ def self.print_require_jar(file, dep, fallback: false)
102
87
  return if dep.type != :jar || dep.scope != :runtime
88
+
103
89
  if dep.system?
104
- file.puts("require '#{dep.file}'") if file
90
+ file&.puts("require '#{dep.file}'")
105
91
  elsif dep.scope == :runtime
106
92
  if fallback
107
- file.puts(" require '#{dep.path}'") if file
93
+ file&.puts(" require '#{dep.path}'")
108
94
  else
109
- file.puts(" require_jar '#{dep.gav.gsub(':', "', '")}'") if file
95
+ file&.puts(" require_jar '#{dep.gav.gsub(':', "', '")}'")
110
96
  end
111
97
  end
112
98
  end
113
99
 
114
- COMMENT = '# this is a generated file, to avoid over-writing it just delete this comment'.freeze
100
+ COMMENT = '# this is a generated file, to avoid over-writing it just delete this comment'
115
101
  def self.needs_to_write?(require_filename)
116
102
  require_filename && (!File.exist?(require_filename) || File.read(require_filename).match(COMMENT))
117
103
  end
118
104
 
119
- def self.install_deps(deps, dir, require_filename, vendor)
120
- warn 'deprecated'
121
- write_require_jars(deps, require_filename)
122
- vendor_jars(deps, dir) if dir && vendor
123
- end
124
-
125
105
  def self.write_require_jars(deps, require_filename)
126
- if needs_to_write?(require_filename)
127
- FileUtils.mkdir_p(File.dirname(require_filename))
128
- File.open(require_filename, 'w') do |f|
129
- f.puts COMMENT
130
- f.puts 'begin'
131
- f.puts " require 'jar_dependencies'"
132
- f.puts 'rescue LoadError'
133
- deps.each do |dep|
134
- # do not use require_jar method
135
- print_require_jar(f, dep, true)
136
- end
137
- f.puts 'end'
138
- f.puts
139
- f.puts 'if defined? Jars'
140
- deps.each do |dep|
141
- print_require_jar(f, dep)
142
- end
143
- f.puts 'end'
144
- yield f if block_given?
106
+ return unless needs_to_write?(require_filename)
107
+
108
+ FileUtils.mkdir_p(File.dirname(require_filename))
109
+ File.open(require_filename, 'w') do |f|
110
+ f.puts COMMENT
111
+ f.puts 'begin'
112
+ f.puts " require 'jar_dependencies'"
113
+ f.puts 'rescue LoadError'
114
+ deps.each do |dep|
115
+ # do not use require_jar method
116
+ print_require_jar(f, dep, fallback: true)
145
117
  end
118
+ f.puts 'end'
119
+ f.puts
120
+ f.puts 'if defined? Jars'
121
+ deps.each do |dep|
122
+ print_require_jar(f, dep)
123
+ end
124
+ f.puts 'end'
146
125
  end
147
126
  end
148
127
 
@@ -160,8 +139,9 @@ module Jars
160
139
  @mvn.spec
161
140
  end
162
141
 
163
- def vendor_jars(write_require_file = true, vendor_dir = nil)
164
- return unless has_jars?
142
+ def vendor_jars(vendor_dir = nil, write_require_file: true)
143
+ return unless jars?
144
+
165
145
  if Jars.to_prop(Jars::VENDOR) == 'false'
166
146
  vendor_dir = nil
167
147
  else
@@ -171,16 +151,17 @@ module Jars
171
151
  end
172
152
 
173
153
  def self.vendor_jars!(vendor_dir = nil)
174
- new.vendor_jars!(true, vendor_dir)
154
+ new.vendor_jars!(vendor_dir)
175
155
  end
176
156
 
177
- def vendor_jars!(write_require_file = true, vendor_dir = nil)
157
+ def vendor_jars!(vendor_dir = nil, write_require_file: true)
178
158
  vendor_dir ||= spec.require_path
179
159
  do_install(vendor_dir, write_require_file)
180
160
  end
181
161
 
182
- def install_jars(write_require_file = true)
183
- return unless has_jars?
162
+ def install_jars(write_require_file: true)
163
+ return unless jars?
164
+
184
165
  do_install(nil, write_require_file)
185
166
  end
186
167
 
@@ -188,12 +169,12 @@ module Jars
188
169
  @mvn.ruby_maven_install_options = options
189
170
  end
190
171
 
191
- def has_jars?
172
+ def jars?
192
173
  # first look if there are any requirements in the spec
193
174
  # and then if gem depends on jar-dependencies for runtime.
194
175
  # only then install the jars declared in the requirements
195
176
  result = (spec = self.spec) && !spec.requirements.empty? &&
196
- spec.dependencies.detect { |d| d.name == 'jar-dependencies' && d.type == :runtime } != nil
177
+ spec.dependencies.detect { |d| d.name == 'jar-dependencies' && d.type == :runtime }
197
178
  if result && spec.platform.to_s != 'java'
198
179
  Jars.warn "\njar dependencies found on non-java platform gem - do not install jars\n"
199
180
  false
@@ -201,7 +182,6 @@ module Jars
201
182
  result
202
183
  end
203
184
  end
204
- alias jars? has_jars?
205
185
 
206
186
  private
207
187
 
@@ -209,6 +189,7 @@ module Jars
209
189
  if !spec.require_paths.include?(vendor_dir) && vendor_dir
210
190
  raise "vendor dir #{vendor_dir} not in require_paths of gemspec #{spec.require_paths}"
211
191
  end
192
+
212
193
  target_dir = File.join(@mvn.basedir, vendor_dir || spec.require_path)
213
194
  jars_file = File.join(target_dir, "#{spec.name}_jars.rb")
214
195
 
@@ -223,7 +204,7 @@ module Jars
223
204
  end
224
205
  deps = install_dependencies
225
206
  self.class.write_require_jars(deps, jars_file)
226
- self.class.vendor_jars(deps, target_dir) if vendor_dir
207
+ self.class.vendor_jars(target_dir, write_require_file: deps) if vendor_dir
227
208
  end
228
209
 
229
210
  def install_dependencies
@@ -237,6 +218,4 @@ module Jars
237
218
  FileUtils.rm_f(deps) if deps
238
219
  end
239
220
  end
240
- # to stay backward compatible
241
- JarInstaller = Installer unless defined? JarInstaller
242
221
  end
data/lib/jars/lock.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'jars/maven_exec'
2
4
 
3
5
  module Jars
@@ -24,7 +26,9 @@ module Jars
24
26
  end
25
27
 
26
28
  def classifier
27
- size == 5 ? nil : self[2]
29
+ return nil if size == 5
30
+
31
+ self[2]
28
32
  end
29
33
 
30
34
  def gacv
@@ -38,7 +42,7 @@ module Jars
38
42
  ENV_JAVA[a[2..-2]] || a
39
43
  end
40
44
  else
41
- File.join(Jars.home, group_id.gsub(/[.]/, '/'), artifact_id, version, gacv[1..-1].join('-') + '.jar')
45
+ File.join(Jars.home, group_id.gsub(/[.]/, '/'), artifact_id, version, "#{gacv[1..].join('-')}.jar")
42
46
  end
43
47
  end
44
48
  end
@@ -51,10 +55,11 @@ module Jars
51
55
  def process(scope)
52
56
  scope ||= :runtime
53
57
  File.read(@file).each_line do |line|
54
- next if line !~ /:.+:/
55
- jar = JarDetails.new(line.strip.sub(/:jar:/, ':').sub(/:$/, ': ').split(/:/))
58
+ next unless /:.+:/.match?(line)
59
+
60
+ jar = JarDetails.new(line.strip.sub(/:jar:/, ':').sub(/:$/, ': ').split(':'))
56
61
  case scope
57
- when :all
62
+ when :all, :test
58
63
  yield jar
59
64
  when :compile
60
65
  # jar.scope is maven scope
@@ -65,8 +70,6 @@ module Jars
65
70
  when :runtime
66
71
  # jar.scope is maven scope
67
72
  yield jar if (jar.scope != :test) && (jar.scope != :provided)
68
- when :test
69
- yield jar
70
73
  end
71
74
  end
72
75
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require 'jar_dependencies'
3
5
  require 'jars/version'
@@ -15,7 +17,7 @@ module Jars
15
17
 
16
18
  def maven_new
17
19
  factory = MavenFactory.new({}, @debug, @verbose)
18
- pom = File.expand_path('../lock_down_pom.rb', __FILE__)
20
+ pom = File.expand_path('lock_down_pom.rb', __dir__)
19
21
  m = factory.maven_new(pom)
20
22
  m['jruby.plugins.version'] = Jars::JRUBY_PLUGINS_VERSION
21
23
  m['dependency.plugin.version'] = Jars::DEPENDENCY_PLUGIN_VERSION
@@ -41,50 +43,40 @@ module Jars
41
43
  # TODO: make this group a commandline option
42
44
  Bundler.setup('default')
43
45
  maven.property('jars.bundler', true)
44
- done = []
45
- index = 0
46
46
  cwd = File.expand_path('.')
47
47
  Gem.loaded_specs.each do |_name, spec|
48
48
  # if gemspec is local then include all dependencies
49
- maven.attach_jars(spec, cwd == spec.full_gem_path)
49
+ maven.attach_jars(spec, all_dependencies: cwd == spec.full_gem_path)
50
50
  end
51
- rescue Exception => e
52
- case e.class.to_s
53
- when 'LoadError'
54
- if Jars.verbose?
55
- warn e.message
56
- warn 'no bundler found - ignore Gemfile if exists'
57
- end
58
- when 'Bundler::GemfileNotFound'
59
- # do nothing then as we have bundler but no Gemfile
60
- when 'Bundler::GemNotFound'
61
- warn "can not setup bundler with #{Bundler.default_lockfile}"
62
- raise e
63
- else
64
- # reraise exception so user sees it
65
- raise e
51
+ rescue LoadError => e
52
+ if Jars.verbose?
53
+ warn e.message
54
+ warn 'no bundler found - ignore Gemfile if exists'
66
55
  end
56
+ rescue Bundler::GemfileNotFound
57
+ # do nothing then as we have bundler but no Gemfile
58
+ rescue Bundler::GemNotFound
59
+ warn "can not setup bundler with #{Bundler.default_lockfile}"
60
+ raise
67
61
  ensure
68
62
  $LOAD_PATH.replace(load_path)
69
63
  end
70
64
 
71
- def lock_down(options = {})
72
- vendor_dir = File.expand_path(options[:vendor_dir]) if options[:vendor_dir]
65
+ def lock_down(vendor_dir = nil, force: false, update: false, tree: nil)
73
66
  out = File.expand_path('.jars.output')
74
- tree = File.expand_path('.jars.tree')
67
+ tree_provided = tree
68
+ tree ||= File.expand_path('.jars.tree')
75
69
  maven.property('jars.outputFile', out)
76
70
  maven.property('maven.repo.local', Jars.local_maven_repo)
77
- maven.property('jars.home', vendor_dir) if vendor_dir
71
+ maven.property('jars.home', File.expand_path(vendor_dir)) if vendor_dir
78
72
  maven.property('jars.lock', File.expand_path(Jars.lock))
79
- maven.property('jars.force', options[:force] == true)
80
- maven.property('jars.update', options[:update]) if options[:update]
73
+ maven.property('jars.force', force)
74
+ maven.property('jars.update', update) if update
81
75
  # tell not to use Jars.lock as part of POM when running mvn
82
76
  maven.property('jars.skip.lock', true)
83
77
 
84
78
  args = ['gem:jars-lock']
85
- if options[:tree]
86
- args += ['dependency:tree', '-P -gemfile.lock', '-DoutputFile=' + tree]
87
- end
79
+ args += ['dependency:tree', '-P -gemfile.lock', "-DoutputFile=#{tree}"] if tree_provided
88
80
 
89
81
  puts
90
82
  puts '-- jar root dependencies --'
@@ -99,7 +91,7 @@ module Jars
99
91
  puts
100
92
  end
101
93
  puts
102
- puts File.read(out).gsub(/#{File.dirname(out)}\//, '')
94
+ puts File.read(out).gsub("#{File.dirname(out)}/", '')
103
95
  puts
104
96
  ensure
105
97
  FileUtils.rm_f out
@@ -1,8 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # this file is maven DSL and used by maven via jars/lock_down.rb
2
4
 
3
5
  basedir(ENV_JAVA['jars.basedir'])
4
6
 
5
- eval(File.read(File.join(File.dirname(__FILE__), 'attach_jars_pom.rb')))
7
+ def eval_file(file)
8
+ file = File.join(__dir__, file)
9
+ eval(File.read(file), nil, file) # rubocop:disable Security/Eval
10
+ end
11
+
12
+ eval_file('attach_jars_pom.rb')
6
13
 
7
14
  jfile = ENV_JAVA['jars.jarfile']
8
15
  jarfile(jfile) if jfile
@@ -14,17 +21,15 @@ jruby_plugin :gem, ENV_JAVA['jruby.plugins.version']
14
21
  # from each gemspec file. otherwise we need to resolve
15
22
  # the gemspec artifact in the maven way
16
23
  unless ENV_JAVA['jars.bundler']
17
-
18
24
  begin
19
25
  gemspec
20
26
  rescue
21
27
  nil
22
28
  end
23
-
24
29
  end
25
30
 
26
31
  properties('project.build.sourceEncoding' => 'utf-8')
27
32
 
28
33
  plugin :dependency, ENV_JAVA['dependency.plugin.version']
29
34
 
30
- eval(File.read(File.join(File.dirname(__FILE__), 'output_jars_pom.rb')))
35
+ eval_file('output_jars_pom.rb')
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'jar_dependencies'
2
4
  require 'jars/maven_factory'
3
5
 
@@ -23,11 +25,11 @@ module Jars
23
25
  setup(spec)
24
26
  rescue StandardError, LoadError => e
25
27
  # If spec load fails, skip looking for jar-dependencies
26
- warn 'jar-dependencies: ' + e.to_s
28
+ warn "jar-dependencies: #{e}"
27
29
  warn e.backtrace.join("\n") if Jars.verbose?
28
30
  end
29
31
 
30
- def setup(spec = nil, allow_no_file = false)
32
+ def setup(spec = nil, allow_no_file: false)
31
33
  spec ||= find_spec(allow_no_file)
32
34
 
33
35
  case spec
@@ -35,7 +37,7 @@ module Jars
35
37
  @specfile = File.expand_path(spec)
36
38
  @basedir = File.dirname(@specfile)
37
39
  Dir.chdir(@basedir) do
38
- spec = eval(File.read(@specfile), TOPLEVEL_BINDING, @specfile)
40
+ spec = eval(File.read(@specfile), TOPLEVEL_BINDING, @specfile) # rubocop:disable Security/Eval
39
41
  end
40
42
  when Gem::Specification
41
43
  if File.exist?(spec.loaded_from)
@@ -46,12 +48,13 @@ module Jars
46
48
  # there the spec_file is "not installed" but inside
47
49
  # the gem_dir directory
48
50
  Dir.chdir(spec.gem_dir) do
49
- setup(nil, true)
51
+ setup(nil, allow_no_file: true)
50
52
  end
51
53
  end
52
- when NilClass
54
+ when nil
55
+ # ignore
53
56
  else
54
- Jars.debug('spec must be either String or Gem::Specification. ' +
57
+ Jars.debug('spec must be either String or Gem::Specification. ' \
55
58
  'File an issue on github if you need it.')
56
59
  end
57
60
  @spec = spec
@@ -63,10 +66,10 @@ module Jars
63
66
 
64
67
  def resolve_dependencies_list(file)
65
68
  factory = MavenFactory.new(@options)
66
- maven = factory.maven_new(File.expand_path('../gemspec_pom.rb', __FILE__))
69
+ maven = factory.maven_new(File.expand_path('gemspec_pom.rb', __dir__))
67
70
 
68
71
  is_local_file = File.expand_path(File.dirname(@specfile)) == File.expand_path(Dir.pwd)
69
- maven.attach_jars(@spec, is_local_file)
72
+ maven.attach_jars(@spec, all_dependencies: is_local_file)
70
73
 
71
74
  maven['jars.specfile'] = @specfile.to_s
72
75
  maven['outputAbsoluteArtifactFilename'] = 'true'