Module: Jars
- Defined in:
- lib/jars/lock.rb,
lib/jars/version.rb,
lib/jars/classpath.rb,
lib/jars/installer.rb,
lib/jars/lock_down.rb,
lib/jars/maven_exec.rb,
lib/jar_dependencies.rb,
lib/jars/maven_factory.rb,
lib/jars/maven_settings.rb,
lib/jars/gemspec_artifacts.rb
Defined Under Namespace
Classes: Classpath, GemspecArtifacts, Installer, JarDetails, Lock, LockDown, MavenExec, MavenFactory, MavenSettings, MavenVersion
Constant Summary
collapse
- VERSION =
'0.3.8'.freeze
- JRUBY_PLUGINS_VERSION =
'1.1.3'.freeze
- DEPENDENCY_PLUGIN_VERSION =
'2.8'.freeze
- JarInstaller =
to stay backward compatible
Installer
- MAVEN_SETTINGS =
'JARS_MAVEN_SETTINGS'.freeze
- LOCAL_MAVEN_REPO =
'JARS_LOCAL_MAVEN_REPO'.freeze
- LOCK =
'JARS_LOCK'.freeze
- HOME =
where the locally stored jars are search for or stored
'JARS_HOME'.freeze
- SKIP =
skip the gem post install hook
'JARS_SKIP'.freeze
- SKIP_LOCK =
skip Jars.lock mainly to run lock_jars
'JARS_SKIP_LOCK'.freeze
- REQUIRE =
do not require any jars if set to false
'JARS_REQUIRE'.freeze
- NO_REQUIRE =
'JARS_NO_REQUIRE'.freeze
- QUIET =
no more warnings on conflict. this still requires jars but will not warn. it is needed to load jars from (default) gems which do contribute to any dependency manager (maven, gradle, jbundler)
'JARS_QUIET'.freeze
- VERBOSE =
'JARS_VERBOSE'.freeze
- DEBUG =
'JARS_DEBUG'.freeze
- VENDOR =
vendor jars inside gem when installing gem
'JARS_VENDOR'.freeze
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Attribute Details
.require=(value) ⇒ Object
Sets the attribute require
93
94
95
|
# File 'lib/jar_dependencies.rb', line 93
def require=(value)
@require = value
end
|
Class Method Details
.absolute(file) ⇒ Object
265
266
267
|
# File 'lib/jar_dependencies.rb', line 265
def absolute( file )
File.expand_path( file ) if file
end
|
.debug(msg = nil, &block) ⇒ Object
261
262
263
|
# File 'lib/jar_dependencies.rb', line 261
def debug(msg = nil, &block)
Kernel.warn(msg || block.call) if verbose?
end
|
.debug? ⇒ Boolean
110
111
112
|
# File 'lib/jar_dependencies.rb', line 110
def debug?
to_boolean( DEBUG )
end
|
.freeze_loading ⇒ Object
122
123
124
|
# File 'lib/jar_dependencies.rb', line 122
def freeze_loading
self.require = false
end
|
.home ⇒ Object
183
184
185
|
# File 'lib/jar_dependencies.rb', line 183
def home
@_jars_home_ ||= absolute(to_prop(HOME)) || local_maven_repo
end
|
.jarfile ⇒ Object
99
100
101
|
# File 'lib/jar_dependencies.rb', line 99
def jarfile
ENV[ 'JARFILE' ] || ENV_JAVA[ 'jarfile' ] || ENV[ 'JBUNDLER_JARFILE' ] || ENV_JAVA[ 'jbundler.jarfile' ] || 'Jarfile'
end
|
.jars_lock_from_class_loader ⇒ Object
134
135
136
137
138
139
140
|
# File 'lib/jar_dependencies.rb', line 134
def jars_lock_from_class_loader
if to_prop( LOCK ).nil? && defined?(JRUBY_VERSION)
JRuby.runtime.jruby_class_loader.get_resources( 'Jars.lock' ).collect do |url|
url.to_s
end
end
end
|
.local_maven_repo ⇒ Object
175
176
177
178
179
180
181
|
# File 'lib/jar_dependencies.rb', line 175
def local_maven_repo
@_local_maven_repo ||= absolute(to_prop(LOCAL_MAVEN_REPO)) ||
detect_local_repository(maven_local_settings) ||
detect_local_repository(maven_user_settings) ||
detect_local_repository(maven_global_settings) ||
File.join( user_home, '.m2', 'repository' )
end
|
.lock ⇒ Object
130
131
132
|
# File 'lib/jar_dependencies.rb', line 130
def lock
to_prop( LOCK ) || 'Jars.lock'
end
|
.lock_down(debug = false, verbose = false, options = {}) ⇒ Object
52
53
54
55
56
57
58
|
# File 'lib/jar_dependencies.rb', line 52
def lock_down( debug = false, verbose = false, options = {} )
ENV[ SKIP_LOCK ] = 'true'
require 'jars/lock_down' Jars::LockDown.new( debug, verbose ).lock_down( options )
ensure
ENV[ SKIP_LOCK ] = nil
end
|
.lock_path(basedir = nil) ⇒ Object
142
143
144
145
146
147
148
149
150
151
|
# File 'lib/jar_dependencies.rb', line 142
def lock_path( basedir = nil )
deps = self.lock
return deps if File.exists?( deps )
basedir ||= '.'
[ '.', 'jars', 'vendor/jars' ].each do |dir|
file = File.join( basedir, dir, self.lock )
return file if File.exists?( file )
end
nil
end
|
.mark_as_required(group_id, artifact_id, *classifier_version) ⇒ Object
245
246
247
248
|
# File 'lib/jar_dependencies.rb', line 245
def mark_as_required( group_id, artifact_id, *classifier_version )
require_jar_with_block( group_id, artifact_id, *classifier_version ) do
end
end
|
.maven_global_settings ⇒ Object
.maven_local_settings ⇒ Object
.maven_user_settings ⇒ Object
.no_more_warnings ⇒ Object
118
119
120
|
# File 'lib/jar_dependencies.rb', line 118
def no_more_warnings
@silent = true
end
|
.no_require? ⇒ Boolean
104
|
# File 'lib/jar_dependencies.rb', line 104
def no_require?; ! require? end
|
.quiet? ⇒ Boolean
95
96
97
|
# File 'lib/jar_dependencies.rb', line 95
def quiet?
( @silent ||= false ) || to_boolean( QUIET )
end
|
.require? ⇒ Boolean
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/jar_dependencies.rb', line 81
def require?
@require = nil unless instance_variable_defined?(:@require)
if @require.nil?
if ( require = to_boolean( REQUIRE ) ).nil?
no_require = to_boolean( NO_REQUIRE )
@require = no_require.nil? ? true : ! no_require
else
@require = require
end
end
@require
end
|
.require_jar(group_id, artifact_id, *classifier_version) ⇒ Object
250
251
252
253
254
255
|
# File 'lib/jar_dependencies.rb', line 250
def require_jar( group_id, artifact_id, *classifier_version )
require_jars_lock unless skip_lock?
require_jar_with_block( group_id, artifact_id, *classifier_version ) do |gid, aid, version, classifier|
do_require( gid, aid, version, classifier )
end
end
|
.require_jars_lock ⇒ Object
237
238
239
240
241
242
243
|
# File 'lib/jar_dependencies.rb', line 237
def require_jars_lock
@@jars_lock ||= false
unless @@jars_lock
require_jars_lock!
@@jars_lock ||= true
end
end
|
.require_jars_lock!(scope = :runtime) ⇒ Object
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
# File 'lib/jar_dependencies.rb', line 187
def require_jars_lock!( scope = :runtime )
urls = jars_lock_from_class_loader
if urls and urls.size > 0
@@jars_lock = true
require 'jars/classpath' unless defined? Jars::Classpath
done = []
while done != urls do
urls.each do |url|
unless done.member?( url )
Jars.debug { "--- load jars from uri #{url}" }
classpath = Jars::Classpath.new( nil, "uri:#{url}" )
classpath.require( scope )
done << url
end
end
urls = jars_lock_from_class_loader
end
no_more_warnings
elsif jars_lock = Jars.lock_path
Jars.debug { "--- load jars from #{jars_lock}" }
@@jars_lock = jars_lock
require 'jars/classpath' unless defined? Jars::Classpath
classpath = Jars::Classpath.new( nil, jars_lock )
classpath.require( scope )
no_more_warnings
end
Jars.debug {
@@jars ||= {}
loaded = @@jars.collect{ |k,v| "#{k}:#{v}" }
"--- loaded jars ---\n\t#{loaded.join("\n\t")}"
}
end
|
.reset ⇒ Object
153
154
155
156
157
|
# File 'lib/jar_dependencies.rb', line 153
def reset
instance_variables.each { |var| instance_variable_set(var, nil) }
Jars::MavenSettings.reset
( @@jars ||= {} ).clear
end
|
.setup(options = nil) ⇒ Object
224
225
226
227
228
229
230
231
232
233
234
235
|
# File 'lib/jar_dependencies.rb', line 224
def setup( options = nil )
case options
when Symbol
require_jars_lock!( options )
when Hash
@_jars_home = options[:jars_home]
@_jars_lock = options[:jars_lock]
require_jars_lock!( options[:scope] || :runtime )
else
require_jars_lock!
end
end
|
.skip? ⇒ Boolean
77
78
79
|
# File 'lib/jar_dependencies.rb', line 77
def skip?
to_boolean( SKIP )
end
|
.skip_lock? ⇒ Boolean
126
127
128
|
# File 'lib/jar_dependencies.rb', line 126
def skip_lock?
to_prop( SKIP_LOCK ) || false
end
|
.to_boolean(key) ⇒ Object
72
73
74
75
|
# File 'lib/jar_dependencies.rb', line 72
def to_boolean( key )
return nil if ( prop = to_prop( key ) ).nil?
prop.empty? || prop.eql?('true')
end
|
.user_home ⇒ Object
269
270
271
272
273
274
275
276
277
|
# File 'lib/jar_dependencies.rb', line 269
def user_home
ENV[ 'HOME' ] || begin
user_home = Dir.home if Dir.respond_to?(:home)
unless user_home
user_home = ENV_JAVA[ 'user.home' ] if Object.const_defined?(:ENV_JAVA)
end
user_home
end
end
|
.vendor? ⇒ Boolean
114
115
116
|
# File 'lib/jar_dependencies.rb', line 114
def vendor?
to_boolean( VENDOR )
end
|
.verbose? ⇒ Boolean
106
107
108
|
# File 'lib/jar_dependencies.rb', line 106
def verbose?
to_boolean( VERBOSE )
end
|
.warn(msg = nil, &block) ⇒ Object
257
258
259
|
# File 'lib/jar_dependencies.rb', line 257
def warn(msg = nil, &block)
Kernel.warn(msg || block.call) unless quiet? and not verbose?
end
|
Instance Method Details
#to_prop(key) ⇒ Object
61
62
63
64
65
|
# File 'lib/jar_dependencies.rb', line 61
def to_prop( key )
key = key.gsub( '_', '.' )
ENV_JAVA[ ( key.downcase!; key ) ] ||
ENV[ ( key.gsub!( '.', '_' ); key.upcase!; key ) ]
end
|