jar-dependencies 0.4.1 → 0.5.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.
Potentially problematic release.
This version of jar-dependencies might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/Mavenfile +6 -10
- data/Rakefile +6 -22
- data/Readme.md +7 -2
- data/{bin → exe}/lock_jars +7 -2
- data/jar-dependencies.gemspec +25 -22
- data/lib/jar-dependencies.rb +2 -0
- data/lib/jar_dependencies.rb +91 -84
- data/lib/jar_install_post_install_hook.rb +2 -0
- data/lib/jars/attach_jars_pom.rb +6 -2
- data/lib/jars/classpath.rb +8 -10
- data/lib/jars/gemspec_artifacts.rb +62 -56
- data/lib/jars/gemspec_pom.rb +8 -2
- data/lib/jars/installer.rb +50 -71
- data/lib/jars/lock.rb +10 -7
- data/lib/jars/lock_down.rb +21 -29
- data/lib/jars/lock_down_pom.rb +9 -4
- data/lib/jars/maven_exec.rb +11 -8
- data/lib/jars/maven_factory.rb +12 -13
- data/lib/jars/maven_settings.rb +21 -27
- data/lib/jars/output_jars_pom.rb +10 -2
- data/lib/jars/post_install_hook.rb +3 -1
- data/lib/jars/setup.rb +2 -0
- data/lib/jars/version.rb +5 -3
- data/lib/rubygems_plugin.rb +2 -0
- metadata +21 -34
- data/lib/jar_installer.rb +0 -1
data/lib/jars/maven_factory.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'jar_dependencies'
|
2
4
|
require 'jars/gemspec_artifacts'
|
3
5
|
|
4
6
|
module Jars
|
5
7
|
class MavenFactory
|
6
8
|
module AttachJars
|
7
|
-
def attach_jars(spec, all_dependencies
|
9
|
+
def attach_jars(spec, all_dependencies: false)
|
8
10
|
@index ||= 0
|
9
11
|
@done ||= []
|
10
12
|
|
@@ -63,17 +65,13 @@ module Jars
|
|
63
65
|
end
|
64
66
|
maven['verbose'] = (@debug || @verbose) == true
|
65
67
|
|
66
|
-
if Jars.maven_settings
|
67
|
-
maven.options['-s'] = Jars::MavenSettings.effective_settings
|
68
|
-
end
|
68
|
+
maven.options['-s'] = Jars::MavenSettings.effective_settings if Jars.maven_settings
|
69
69
|
|
70
70
|
maven['maven.repo.local'] = java.io.File.new(Jars.local_maven_repo).absolute_path.to_s
|
71
71
|
|
72
72
|
maven
|
73
73
|
end
|
74
74
|
|
75
|
-
private
|
76
|
-
|
77
75
|
def lazy_load_maven
|
78
76
|
add_gem_to_load_path('ruby-maven')
|
79
77
|
add_gem_to_load_path('ruby-maven-libs')
|
@@ -97,22 +95,22 @@ module Jars
|
|
97
95
|
def add_gem_to_load_path(name)
|
98
96
|
# if the gem is already activated => good
|
99
97
|
return if Gem.loaded_specs[name]
|
98
|
+
|
100
99
|
# just install gem if needed and add it to the load_path
|
101
100
|
# and leave activated gems as they are
|
102
101
|
req = requirement(name)
|
103
|
-
unless spec = find_spec_via_rubygems(name, req)
|
102
|
+
unless (spec = find_spec_via_rubygems(name, req))
|
104
103
|
spec = install_gem(name, req)
|
105
104
|
end
|
106
|
-
unless spec
|
107
|
-
|
108
|
-
end
|
105
|
+
raise "failed to resolve gem '#{name}' if you're using Bundler add it as a dependency" unless spec
|
106
|
+
|
109
107
|
path = File.join(spec.full_gem_path, spec.require_path)
|
110
108
|
$LOAD_PATH << path unless $LOAD_PATH.include?(path)
|
111
109
|
end
|
112
110
|
|
113
111
|
def requirement(name)
|
114
112
|
jars = Gem.loaded_specs['jar-dependencies']
|
115
|
-
dep = jars
|
113
|
+
dep = jars&.dependencies&.detect { |d| d.name == name }
|
116
114
|
dep.nil? ? Gem::Requirement.create('>0') : dep.requirement
|
117
115
|
end
|
118
116
|
|
@@ -124,10 +122,11 @@ module Jars
|
|
124
122
|
inst.install(name, req).first
|
125
123
|
rescue => e
|
126
124
|
if Jars.verbose?
|
127
|
-
warn e.inspect
|
125
|
+
warn e.inspect
|
128
126
|
warn e.backtrace.join("\n")
|
129
127
|
end
|
130
|
-
raise "there was an error installing '#{name} (#{req})'
|
128
|
+
raise "there was an error installing '#{name} (#{req})' " \
|
129
|
+
"#{@options[:domain]}. please install it manually: #{e.inspect}"
|
131
130
|
end
|
132
131
|
end
|
133
132
|
end
|
data/lib/jars/maven_settings.rb
CHANGED
@@ -1,27 +1,28 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Jars
|
3
4
|
class MavenSettings
|
4
5
|
LINE_SEPARATOR = ENV_JAVA['line.separator']
|
5
6
|
|
6
7
|
class << self
|
7
8
|
def local_settings
|
8
|
-
unless instance_variable_defined?(:@_jars_maven_local_settings_)
|
9
|
-
@_jars_maven_local_settings_ = nil
|
10
|
-
end
|
9
|
+
@_jars_maven_local_settings_ = nil unless instance_variable_defined?(:@_jars_maven_local_settings_)
|
11
10
|
if @_jars_maven_local_settings_.nil?
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
settings = Jars.absolute('settings.xml')
|
12
|
+
@_jars_maven_local_settings_ =
|
13
|
+
if settings && File.exist?(settings)
|
14
|
+
settings
|
15
|
+
else
|
16
|
+
false
|
17
|
+
end
|
15
18
|
end
|
16
19
|
@_jars_maven_local_settings_ || nil
|
17
20
|
end
|
18
21
|
|
19
22
|
def user_settings
|
20
|
-
unless instance_variable_defined?(:@_jars_maven_user_settings_)
|
21
|
-
@_jars_maven_user_settings_ = nil
|
22
|
-
end
|
23
|
+
@_jars_maven_user_settings_ = nil unless instance_variable_defined?(:@_jars_maven_user_settings_)
|
23
24
|
if @_jars_maven_user_settings_.nil?
|
24
|
-
if settings = Jars.absolute(Jars.to_prop(MAVEN_SETTINGS))
|
25
|
+
if (settings = Jars.absolute(Jars.to_prop(MAVEN_SETTINGS)))
|
25
26
|
unless File.exist?(settings)
|
26
27
|
Jars.warn { "configured ENV['#{MAVEN_SETTINGS}'] = '#{settings}' not found" }
|
27
28
|
settings = false
|
@@ -36,9 +37,7 @@ module Jars
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def effective_settings
|
39
|
-
unless instance_variable_defined?(:@_jars_effective_maven_settings_)
|
40
|
-
@_jars_effective_maven_settings_ = nil
|
41
|
-
end
|
40
|
+
@_jars_effective_maven_settings_ = nil unless instance_variable_defined?(:@_jars_effective_maven_settings_)
|
42
41
|
if @_jars_effective_maven_settings_.nil?
|
43
42
|
begin
|
44
43
|
require 'rubygems/request'
|
@@ -48,12 +47,11 @@ module Jars
|
|
48
47
|
rescue
|
49
48
|
Jars.debug('ignore rubygems proxy configuration as rubygems is too old')
|
50
49
|
end
|
51
|
-
if http.nil? && https.nil?
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
50
|
+
@_jars_effective_maven_settings_ = if http.nil? && https.nil?
|
51
|
+
settings
|
52
|
+
else
|
53
|
+
setup_interpolated_settings(http, https) || settings
|
54
|
+
end
|
57
55
|
end
|
58
56
|
@_jars_effective_maven_settings_
|
59
57
|
end
|
@@ -69,18 +67,14 @@ module Jars
|
|
69
67
|
end
|
70
68
|
|
71
69
|
def settings
|
72
|
-
unless instance_variable_defined?(:@_jars_maven_settings_)
|
73
|
-
@_jars_maven_settings_ = nil
|
74
|
-
end
|
70
|
+
@_jars_maven_settings_ = nil unless instance_variable_defined?(:@_jars_maven_settings_)
|
75
71
|
local_settings || user_settings if @_jars_maven_settings_.nil?
|
76
72
|
end
|
77
73
|
|
78
74
|
def global_settings
|
79
|
-
unless instance_variable_defined?(:@_jars_maven_global_settings_)
|
80
|
-
@_jars_maven_global_settings_ = nil
|
81
|
-
end
|
75
|
+
@_jars_maven_global_settings_ = nil unless instance_variable_defined?(:@_jars_maven_global_settings_)
|
82
76
|
if @_jars_maven_global_settings_.nil?
|
83
|
-
if mvn_home = ENV['M2_HOME'] || ENV['MAVEN_HOME']
|
77
|
+
if (mvn_home = ENV['M2_HOME'] || ENV['MAVEN_HOME'])
|
84
78
|
settings = File.join(mvn_home, 'conf/settings.xml')
|
85
79
|
settings = false unless File.exist?(settings)
|
86
80
|
else
|
data/lib/jars/output_jars_pom.rb
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# this file is maven DSL
|
2
4
|
|
3
5
|
if ENV_JAVA['jars.quiet'] != 'true'
|
4
6
|
model.dependencies.each do |d|
|
5
|
-
puts
|
6
|
-
|
7
|
+
puts " #{d.group_id}:#{d.artifact_id}" \
|
8
|
+
"#{d.classifier ? ":#{d.classifier}" : ''}" \
|
9
|
+
":#{d.version}:#{d.scope || 'compile'}"
|
10
|
+
next if d.exclusions.empty?
|
11
|
+
|
12
|
+
puts " exclusions: #{d.exclusions.collect do |e|
|
13
|
+
"#{e.group_id}:#{e.artifact_id}"
|
14
|
+
end.join}"
|
7
15
|
end
|
8
16
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#
|
2
4
|
# Copyright (C) 2014 Christian Meier
|
3
5
|
#
|
@@ -21,7 +23,7 @@
|
|
21
23
|
|
22
24
|
if defined?(JRUBY_VERSION) && Gem.post_install_hooks.empty?
|
23
25
|
Gem.post_install do |gem_installer|
|
24
|
-
|
26
|
+
if ENV['JARS_SKIP'] != 'true' && ENV_JAVA['jars.skip'] != 'true'
|
25
27
|
require 'jars/installer'
|
26
28
|
jars = Jars::Installer.new(gem_installer.spec)
|
27
29
|
jars.ruby_maven_install_options = gem_installer.options || {}
|
data/lib/jars/setup.rb
CHANGED
data/lib/jars/version.rb
CHANGED
data/lib/rubygems_plugin.rb
CHANGED
metadata
CHANGED
@@ -1,61 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jar-dependencies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- christian meier
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 5.10
|
18
|
+
version: '5.10'
|
19
19
|
name: minitest
|
20
|
-
prerelease: false
|
21
20
|
type: :development
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 5.10.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
30
|
-
- - "~>"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '10.2'
|
33
|
-
name: rake
|
34
21
|
prerelease: false
|
35
|
-
type: :development
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
24
|
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: '10
|
26
|
+
version: '5.10'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
43
29
|
requirements:
|
44
30
|
- - "~>"
|
45
31
|
- !ruby/object:Gem::Version
|
46
|
-
version: 3.
|
32
|
+
version: '3.9'
|
47
33
|
name: ruby-maven
|
48
|
-
prerelease: false
|
49
34
|
type: :development
|
35
|
+
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
38
|
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.
|
55
|
-
description:
|
56
|
-
|
57
|
-
|
58
|
-
|
40
|
+
version: '3.9'
|
41
|
+
description: |
|
42
|
+
manage jar dependencies for gems and keep track which jar was already
|
43
|
+
loaded using maven artifact coordinates. it warns on version conflicts and
|
44
|
+
loads only ONE jar assuming the first one is compatible to the second one
|
45
|
+
otherwise your project needs to lock down the right version by providing a
|
46
|
+
Jars.lock file.
|
59
47
|
email:
|
60
48
|
- mkristian@web.de
|
61
49
|
executables:
|
@@ -67,12 +55,11 @@ files:
|
|
67
55
|
- Mavenfile
|
68
56
|
- Rakefile
|
69
57
|
- Readme.md
|
70
|
-
-
|
58
|
+
- exe/lock_jars
|
71
59
|
- jar-dependencies.gemspec
|
72
60
|
- lib/jar-dependencies.rb
|
73
61
|
- lib/jar_dependencies.rb
|
74
62
|
- lib/jar_install_post_install_hook.rb
|
75
|
-
- lib/jar_installer.rb
|
76
63
|
- lib/jars/attach_jars_pom.rb
|
77
64
|
- lib/jars/classpath.rb
|
78
65
|
- lib/jars/gemspec_artifacts.rb
|
@@ -93,16 +80,17 @@ files:
|
|
93
80
|
homepage: https://github.com/mkristian/jar-dependencies
|
94
81
|
licenses:
|
95
82
|
- MIT
|
96
|
-
metadata:
|
83
|
+
metadata:
|
84
|
+
rubygems_mfa_required: 'true'
|
97
85
|
post_install_message: |2+
|
98
86
|
|
99
87
|
if you want to use the executable lock_jars then install ruby-maven gem before using lock_jars
|
100
88
|
|
101
|
-
$ gem install ruby-maven -v '~> 3.
|
89
|
+
$ gem install ruby-maven -v '~> 3.9'
|
102
90
|
|
103
91
|
or add it as a development dependency to your Gemfile
|
104
92
|
|
105
|
-
gem 'ruby-maven', '~> 3.
|
93
|
+
gem 'ruby-maven', '~> 3.9'
|
106
94
|
|
107
95
|
rdoc_options: []
|
108
96
|
require_paths:
|
@@ -111,15 +99,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
99
|
requirements:
|
112
100
|
- - ">="
|
113
101
|
- !ruby/object:Gem::Version
|
114
|
-
version: '
|
102
|
+
version: '2.6'
|
115
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
104
|
requirements:
|
117
105
|
- - ">="
|
118
106
|
- !ruby/object:Gem::Version
|
119
107
|
version: '0'
|
120
108
|
requirements: []
|
121
|
-
|
122
|
-
rubygems_version: 2.6.14.1
|
109
|
+
rubygems_version: 3.3.26
|
123
110
|
signing_key:
|
124
111
|
specification_version: 4
|
125
112
|
summary: manage jar dependencies for gems
|
data/lib/jar_installer.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'jars/installer'
|