jbundler 0.5.5 → 0.6.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +27 -16
- data/Gemfile.lock~ +32 -18
- data/bin/jbundle +21 -31
- data/lib/jbundler.jar +0 -0
- data/lib/jbundler.rb +54 -46
- data/lib/jbundler/aether.rb +1 -1
- data/lib/jbundler/classpath_file.rb +39 -10
- data/lib/jbundler/cli.rb +75 -49
- data/lib/jbundler/config.rb +84 -33
- data/lib/jbundler/configurator.rb +1 -0
- data/lib/jbundler/context.rb +34 -0
- data/lib/jbundler/{lock_down_pom.rb → dependency_pom.rb} +12 -8
- data/lib/jbundler/executable_pom.rb +6 -13
- data/lib/jbundler/gemfile_lock.rb +4 -0
- data/lib/jbundler/jruby_complete.rb +44 -0
- data/lib/jbundler/jruby_complete_pom.rb +31 -0
- data/lib/jbundler/lock_down.rb +101 -68
- data/lib/jbundler/pom.rb +66 -43
- data/lib/jbundler/pom_runner.rb +71 -0
- data/lib/jbundler/show.rb +31 -21
- data/lib/jbundler/tree.rb +8 -4
- data/lib/jbundler/vendor.rb +19 -10
- data/spec/classpath_file_spec.rb +47 -3
- data/spec/config_spec.rb +70 -43
- data/spec/setup.rb +4 -0
- data/spec/vendor_spec.rb +3 -3
- metadata +25 -8
- data/lib/jbundler/tree_pom.rb +0 -19
data/lib/jbundler/config.rb
CHANGED
@@ -19,34 +19,74 @@
|
|
19
19
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
20
20
|
#
|
21
21
|
require 'yaml'
|
22
|
+
require 'jar_dependencies'
|
22
23
|
|
23
24
|
module JBundler
|
24
25
|
|
25
26
|
# allow yaml config in $HOME/.jbundlerrc and $PWD/.jbundlerrc
|
26
27
|
class Config
|
27
28
|
|
28
|
-
|
29
|
+
RC_FILE = '.jbundlerrc'
|
30
|
+
|
31
|
+
attr_accessor :verbose, :local_repository, :jarfile, :gemfile, :skip, :settings, :offline, :work_dir, :vendor_dir, :basedir
|
29
32
|
|
30
33
|
def initialize
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
+
if ENV.has_key? 'HOME'
|
35
|
+
homefile = File.join(ENV['HOME'], RC_FILE)
|
36
|
+
home_config = YAML.load_file(homefile) if File.exists?(homefile)
|
37
|
+
else
|
38
|
+
home_config = nil
|
39
|
+
end
|
40
|
+
@config = (home_config || {})
|
41
|
+
@basedir = find_basedir( File.expand_path( '.' ) )
|
42
|
+
@basedir ||= File.expand_path( '.' )
|
43
|
+
file = join_basedir( RC_FILE )
|
34
44
|
pwd_config = YAML.load_file(file) if File.exists?(file)
|
35
|
-
|
36
|
-
|
45
|
+
@config.merge!(pwd_config || {})
|
46
|
+
end
|
47
|
+
|
48
|
+
def join_basedir( path )
|
49
|
+
if @basedir
|
50
|
+
File.join( @basedir, path )
|
51
|
+
else
|
52
|
+
path
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def find_basedir( dir )
|
57
|
+
f = File.join( dir, RC_FILE )
|
58
|
+
return dir if File.exists?( f )
|
59
|
+
f = File.join( dir, _jarfile )
|
60
|
+
return dir if File.exists?( f )
|
61
|
+
f = File.join( dir, _gemfile )
|
62
|
+
return dir if File.exists?( f )
|
63
|
+
parent = File.dirname( dir )
|
64
|
+
if dir != ENV['HOME'] && dir != parent
|
65
|
+
find_basedir( parent )
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def absolute( file )
|
70
|
+
if file.nil? || file == File.expand_path( file )
|
71
|
+
file
|
72
|
+
else
|
73
|
+
File.join( @basedir, file )
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def _jbundler_env( key )
|
78
|
+
ENV[ key.upcase.gsub( /[.]/, '_' ) ] ||
|
79
|
+
@config[ key.downcase.sub(/^j?bundle_/, '' ).sub( /[.]/, '_' ) ]
|
37
80
|
end
|
81
|
+
private :_jbundler_env
|
38
82
|
|
39
83
|
if defined? JRUBY_VERSION
|
40
|
-
def jbundler_env(key)
|
41
|
-
java.lang.System.getProperty(key.downcase.gsub(/_/, '.')) ||
|
42
|
-
|
43
|
-
@config[key.downcase.sub(/^j?bundle_/, '').sub(/[.]/, '_')]
|
84
|
+
def jbundler_env( key )
|
85
|
+
java.lang.System.getProperty( key.downcase.gsub( /_/, '.' ) ) ||
|
86
|
+
_jbundler_env( key )
|
44
87
|
end
|
45
88
|
else
|
46
|
-
|
47
|
-
ENV[key.upcase.gsub(/[.]/, '_')] ||
|
48
|
-
@config[key.downcase.sub(/^j?bundler/, '').sub(/[.]/, '_')]
|
49
|
-
end
|
89
|
+
alias :jbundler_env :_jbundler_env
|
50
90
|
end
|
51
91
|
private :jbundler_env
|
52
92
|
|
@@ -63,36 +103,54 @@ module JBundler
|
|
63
103
|
end
|
64
104
|
|
65
105
|
def jarfile
|
66
|
-
|
67
|
-
warn "'Mvnfile' name is deprecated, please use 'Jarfile' instead"
|
68
|
-
@jarfile = 'Mvnfile'
|
69
|
-
end
|
70
|
-
@jarfile ||= jbundler_env('JBUNDLE_JARFILE') || 'Jarfile'
|
106
|
+
@jarfile ||= absolute( _jarfile )
|
71
107
|
end
|
72
108
|
|
109
|
+
def _jarfile
|
110
|
+
jbundler_env('JBUNDLE_JARFILE') || 'Jarfile'
|
111
|
+
end
|
112
|
+
private :_jarfile
|
113
|
+
|
73
114
|
def jarfile_lock
|
74
115
|
"#{jarfile}.lock"
|
75
116
|
end
|
76
117
|
|
77
118
|
def gemfile
|
78
|
-
@gemfile ||=
|
119
|
+
@gemfile ||= absolute( _gemfile )
|
120
|
+
end
|
121
|
+
|
122
|
+
def _gemfile
|
123
|
+
jbundler_env('BUNDLE_GEMFILE') || 'Gemfile'
|
79
124
|
end
|
125
|
+
private :_gemfile
|
80
126
|
|
81
127
|
def gemfile_lock
|
82
128
|
"#{gemfile}.lock"
|
83
129
|
end
|
84
130
|
|
85
131
|
def classpath_file
|
86
|
-
jbundler_env('JBUNDLE_CLASSPATH_FILE') ||
|
132
|
+
absolute( jbundler_env('JBUNDLE_CLASSPATH_FILE') ||
|
133
|
+
'.jbundler/classpath.rb' )
|
87
134
|
end
|
88
135
|
|
89
136
|
def local_repository
|
90
137
|
# use maven default local repo as default
|
91
|
-
|
138
|
+
local_maven_repository = absolute( jbundler_env('JBUNDLE_LOCAL_REPOSITORY') )
|
139
|
+
if local_maven_repository
|
140
|
+
warn "JBUNDLE_LOCAL_REPOSITORY environment or jbundle.local.repository' system property is deprecated use JARS_HOME or jars.home instead"
|
141
|
+
ENV[ Jars::HOME ] ||= local_maven_repository
|
142
|
+
else
|
143
|
+
Jars.home
|
144
|
+
end
|
92
145
|
end
|
93
146
|
|
94
147
|
def settings
|
95
|
-
|
148
|
+
settings = absolute( jbundler_env('JBUNDLE_SETTINGS') )
|
149
|
+
if settings
|
150
|
+
warn "JBUNDLE_SETTINGS environment or jbundle.settings' system property is deprecated use JARS_MAVEN_SETTINGS or jars.maven.settings instead"
|
151
|
+
ENV[ Jars::MAVEN_SETTINGS ] ||= settings
|
152
|
+
end
|
153
|
+
Jars.maven_settings
|
96
154
|
end
|
97
155
|
|
98
156
|
def offline
|
@@ -118,20 +176,13 @@ module JBundler
|
|
118
176
|
@mirror
|
119
177
|
end
|
120
178
|
|
121
|
-
def rubygems_mirror
|
122
|
-
@rubygems_mirror ||= jbundler_env('BUNDLE_RUBYGEMS_MIRROR')
|
123
|
-
# here a leading slash is needed !!
|
124
|
-
@rubygems_mirror = @rubygems_mirror.sub( /([^\/])$/ , "\\1/" ) if @rubygems_mirror
|
125
|
-
warn 'reubygems mirror config is deprecated, use bundler >=1.5 and its mirror config'
|
126
|
-
@rubygems_mirror
|
127
|
-
end
|
128
|
-
|
129
179
|
def work_dir
|
130
|
-
@work_dir ||= jbundler_env('JBUNDLE_WORK_DIR') || 'pkg'
|
180
|
+
@work_dir ||= absolute( jbundler_env('JBUNDLE_WORK_DIR') || 'pkg' )
|
131
181
|
end
|
132
182
|
|
133
183
|
def vendor_dir
|
134
|
-
@vendor_dir ||= jbundler_env('JBUNDLE_VENDOR_DIR') ||
|
184
|
+
@vendor_dir ||= absolute( jbundler_env('JBUNDLE_VENDOR_DIR') ||
|
185
|
+
File.join( 'vendor', 'jars' ) )
|
135
186
|
end
|
136
187
|
|
137
188
|
end
|
@@ -9,6 +9,7 @@ module JBundler
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def configure( maven )
|
12
|
+
maven.property( 'jbundler.basedir', @config.basedir )
|
12
13
|
maven.property( 'jbundler.jarfile', @config.jarfile )
|
13
14
|
maven.property( 'jbundler.gemfile', @config.gemfile )
|
14
15
|
maven.property( 'jbundler.workdir', work_dir )
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'maven/tools/jarfile'
|
2
|
+
require 'jbundler/classpath_file'
|
3
|
+
require 'jbundler/vendor'
|
4
|
+
require 'jbundler/gemfile_lock'
|
5
|
+
require 'jbundler/aether'
|
6
|
+
|
7
|
+
module JBundler
|
8
|
+
|
9
|
+
class Context
|
10
|
+
|
11
|
+
attr_reader :config
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@config = JBundler::Config.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def jarfile
|
18
|
+
@jarfile ||= Maven::Tools::Jarfile.new( @config.jarfile )
|
19
|
+
end
|
20
|
+
|
21
|
+
def vendor
|
22
|
+
@vendor ||= JBundler::Vendor.new( @config.vendor_dir )
|
23
|
+
end
|
24
|
+
|
25
|
+
def classpath
|
26
|
+
@classpath ||= JBundler::ClasspathFile.new( @config.classpath_file )
|
27
|
+
end
|
28
|
+
|
29
|
+
def gemfile_lock
|
30
|
+
@gemfile_lock ||= JBundler::GemfileLock.new( jarfile,
|
31
|
+
@config.gemfile_lock )
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -1,23 +1,27 @@
|
|
1
|
+
bdir = java.lang.System.getProperty( "jbundler.basedir" )
|
1
2
|
jfile = java.lang.System.getProperty( "jbundler.jarfile" )
|
2
3
|
gfile = java.lang.System.getProperty( "jbundler.gemfile" )
|
3
4
|
jworkdir = java.lang.System.getProperty( "jbundler.workdir" )
|
4
5
|
|
5
|
-
basedir(
|
6
|
+
basedir( bdir )
|
7
|
+
if basedir != bdir
|
8
|
+
# older maven-tools needs this
|
9
|
+
self.instance_variable_set( :@basedir, bdir )
|
10
|
+
end
|
6
11
|
|
7
12
|
gemfile( gfile ) if File.exists? gfile
|
8
13
|
|
9
|
-
jarfile( jfile )
|
14
|
+
jarfile( jfile, :skip_locked => true )
|
10
15
|
|
11
16
|
build do
|
12
17
|
directory = jworkdir
|
13
|
-
default_goal 'dependency:list'
|
14
18
|
end
|
15
19
|
|
20
|
+
properties( 'project.build.sourceEncoding' => 'utf-8',
|
21
|
+
'tesla.dump.readOnly' => true,
|
22
|
+
'tesla.dump.pom' => 'tree.pom.xml' )
|
23
|
+
|
16
24
|
plugin( :dependency, '2.8',
|
17
25
|
:includeTypes => 'jar',
|
18
26
|
:outputAbsoluteArtifactFilename => true,
|
19
|
-
:outputFile => "
|
20
|
-
|
21
|
-
properties( 'project.build.sourceEncoding' => 'utf-8',
|
22
|
-
'tesla.dump.readOnly' => true,
|
23
|
-
'tesla.dump.pom' => 'lockdown.pom.xml' )
|
27
|
+
:outputFile => java.lang.System.getProperty( "jbundler.outputFile" ) )
|
@@ -21,7 +21,6 @@ FileUtils.cp( java.lang.System.getProperty( 'jbundler.bootstrap'),
|
|
21
21
|
def jruby_home( path )
|
22
22
|
File.join( 'META-INF/jruby.home/lib/ruby/gems/shared', path )
|
23
23
|
end
|
24
|
-
|
25
24
|
|
26
25
|
jfile.locked.each do |dep|
|
27
26
|
artifact( dep )
|
@@ -54,19 +53,13 @@ properties( 'maven.test.skip' => true,
|
|
54
53
|
|
55
54
|
jfile.populate_unlocked do |dsl|
|
56
55
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
jar 'org.jruby:jruby-complete', jruby_version
|
64
|
-
elsif ( jruby_version < '1.7.5' )
|
65
|
-
jar 'org.jruby:jruby-core', jruby_version
|
66
|
-
else
|
67
|
-
jar 'org.jruby:jruby', jruby_version
|
56
|
+
setup_jruby( dsl.jruby || JRUBY_VERSION, :compile )
|
57
|
+
dsl.artifacts.select do |a|
|
58
|
+
a[ :scope ] == :provided
|
59
|
+
end.each do |a|
|
60
|
+
a[ :scope ] = :compile
|
61
|
+
artifact( a )
|
68
62
|
end
|
69
|
-
|
70
63
|
local = dsl.artifacts.select do |a|
|
71
64
|
a[ :system_path ]
|
72
65
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'jbundler/pom_runner'
|
2
|
+
require 'fileutils'
|
3
|
+
module JBundler
|
4
|
+
class JRubyComplete < PomRunner
|
5
|
+
|
6
|
+
def initialize( config, options )
|
7
|
+
super options
|
8
|
+
work_dir = File.expand_path( config.work_dir )
|
9
|
+
maven.property( 'jbundler.workdir', work_dir )
|
10
|
+
maven.property( 'jbundler.basedir', config.basedir )
|
11
|
+
maven.property( 'jbundler.jarfile', config.jarfile )
|
12
|
+
maven.property( 'jbundler.gemfile', config.gemfile )
|
13
|
+
@tree = File.join( work_dir, 'tree.txt' )
|
14
|
+
maven.property( 'jbundler.outputFile', @tree )
|
15
|
+
end
|
16
|
+
|
17
|
+
def pom_file
|
18
|
+
File.join( File.dirname( __FILE__ ), 'jruby_complete_pom.rb' )
|
19
|
+
end
|
20
|
+
|
21
|
+
def show_versions
|
22
|
+
puts '...'
|
23
|
+
|
24
|
+
FileUtils.rm_f( @tree )
|
25
|
+
|
26
|
+
exec( 'dependency:tree' )
|
27
|
+
|
28
|
+
if File.exists?( @tree )
|
29
|
+
puts File.read( @tree )
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def packit
|
34
|
+
puts '...'
|
35
|
+
exec( :package )
|
36
|
+
|
37
|
+
puts
|
38
|
+
puts 'now you can use jruby like this'
|
39
|
+
puts
|
40
|
+
puts "\tjava -jar jruby_complete_custom.jar"
|
41
|
+
puts
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
jfile = ::Maven::Tools::Jarfile.new( java.lang.System.getProperty( "jbundler.jarfile" ) )
|
2
|
+
workdir = java.lang.System.getProperty( "jbundler.workdir" )
|
3
|
+
jworkdir = File.join( workdir, 'jruby_complete' )
|
4
|
+
FileUtils.mkdir_p( jworkdir )
|
5
|
+
|
6
|
+
build.directory = jworkdir
|
7
|
+
|
8
|
+
properties( 'maven.test.skip' => true,
|
9
|
+
'project.build.sourceEncoding' => 'utf-8' )
|
10
|
+
|
11
|
+
jfile.populate_unlocked do |dsl|
|
12
|
+
setup_jruby( dsl.jruby || JRUBY_VERSION, :compile )
|
13
|
+
dsl.artifacts.select do |a|
|
14
|
+
a[ :scope ] == :provided
|
15
|
+
end.each do |a|
|
16
|
+
a[ :scope ] = :compile
|
17
|
+
artifact( a )
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
plugin( :shade, '2.1',
|
22
|
+
:outputFile => "${user.dir}/jruby-complete-custom.jar",
|
23
|
+
:transformers => [ { '@implementation' => 'org.apache.maven.plugins.shade.resource.ManifestResourceTransformer',
|
24
|
+
:mainClass => 'org.jruby.Main' } ] ) do
|
25
|
+
execute_goals( 'shade', :phase => 'package' )
|
26
|
+
end
|
27
|
+
|
28
|
+
plugin( :dependency, '2.8',
|
29
|
+
:includeTypes => 'jar',
|
30
|
+
:outputAbsoluteArtifactFilename => true,
|
31
|
+
:outputFile => java.lang.System.getProperty( "jbundler.outputFile" ) )
|
data/lib/jbundler/lock_down.rb
CHANGED
@@ -6,6 +6,7 @@ require 'jbundler/show'
|
|
6
6
|
require 'maven/tools/jarfile'
|
7
7
|
require 'maven/ruby/maven'
|
8
8
|
require 'fileutils'
|
9
|
+
require 'jar_installer'
|
9
10
|
module JBundler
|
10
11
|
class LockDown
|
11
12
|
|
@@ -13,93 +14,125 @@ module JBundler
|
|
13
14
|
@config = config
|
14
15
|
@configurator = Configurator.new( config )
|
15
16
|
end
|
17
|
+
|
18
|
+
def vendor
|
19
|
+
@vendor ||= JBundler::Vendor.new( @config.vendor_dir )
|
20
|
+
end
|
16
21
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
gemfile_lock = JBundler::GemfileLock.new( jarfile,
|
22
|
-
@config.gemfile_lock )
|
22
|
+
def update( debug = false, verbose = false )
|
23
|
+
if vendor.vendored?
|
24
|
+
raise 'can not update vendored jars'
|
25
|
+
end
|
23
26
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
+
FileUtils.rm_f( @config.jarfile_lock )
|
28
|
+
|
29
|
+
lock_down( false, debug, verbose )
|
30
|
+
end
|
31
|
+
|
32
|
+
def lock_down( needs_vendor = false, debug = false, verbose = false )
|
33
|
+
classpath = JBundler::ClasspathFile.new( @config.classpath_file )
|
34
|
+
needs_update = needs_update?( classpath )
|
35
|
+
if ( ! needs_update && ! needs_vendor ) || vendor.vendored?
|
27
36
|
|
28
|
-
puts 'up to date'
|
37
|
+
puts 'Jar dependencies are up to date !'
|
29
38
|
|
30
39
|
else
|
31
40
|
|
32
41
|
puts '...'
|
42
|
+
|
43
|
+
locked = StringIO.new
|
33
44
|
|
34
|
-
|
45
|
+
deps = install_dependencies( debug, verbose )
|
35
46
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
end
|
76
|
-
if needs_vendor
|
77
|
-
puts "vendor directory: #{@config.vendor_dir}"
|
78
|
-
vendor_map.each do |key, file|
|
79
|
-
vendor.copy_jar( key, file )
|
47
|
+
jars = collect_jars( deps, locked, debug, verbose )
|
48
|
+
|
49
|
+
update_files( classpath, locked, jars ) if needs_update
|
50
|
+
|
51
|
+
vendor_it( vendor, deps ) if needs_vendor
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def needs_update?( classpath )
|
59
|
+
jarfile = Maven::Tools::Jarfile.new( @config.jarfile )
|
60
|
+
gemfile_lock = JBundler::GemfileLock.new( jarfile,
|
61
|
+
@config.gemfile_lock )
|
62
|
+
|
63
|
+
classpath.needs_update?( jarfile, gemfile_lock )
|
64
|
+
end
|
65
|
+
|
66
|
+
def vendor_it( vendor, deps )
|
67
|
+
puts "vendor directory: #{@config.vendor_dir}"
|
68
|
+
vendor.vendor_dependencies( deps )
|
69
|
+
puts
|
70
|
+
end
|
71
|
+
|
72
|
+
def collect_jars( deps, locked, debug, verbose )
|
73
|
+
jars = {}
|
74
|
+
deps.each do |d|
|
75
|
+
case d.scope
|
76
|
+
when :provided
|
77
|
+
( jars[ :jruby ] ||= [] ) << d.file
|
78
|
+
when :test
|
79
|
+
( jars[ :test ] ||= [] ) << d.file
|
80
|
+
else
|
81
|
+
( jars[ :runtime ] ||= [] ) << d.file
|
82
|
+
if( ! d.gav.match( /^ruby.bundler:/ ) )
|
83
|
+
# TODO make Jarfile.lock depend on jruby version as well on
|
84
|
+
# include test as well, i.e. keep the scope in place
|
85
|
+
locked.puts d.coord
|
80
86
|
end
|
81
|
-
puts
|
82
87
|
end
|
83
|
-
|
84
|
-
|
85
|
-
|
88
|
+
end
|
89
|
+
jars
|
90
|
+
end
|
91
|
+
|
92
|
+
def update_files( classpath_file, locked, jars )
|
93
|
+
if locked.string.empty?
|
94
|
+
FileUtils.rm_f @config.jarfile_lock
|
95
|
+
else
|
96
|
+
File.open( @config.jarfile_lock, 'w' ) do |f|
|
97
|
+
f.print locked.string
|
86
98
|
end
|
87
|
-
puts 'jbundle complete'
|
88
99
|
end
|
100
|
+
classpath_file.generate( jars[ :runtime ],
|
101
|
+
jars[ :test ],
|
102
|
+
jars[ :jruby ],
|
103
|
+
@config.local_repository )
|
89
104
|
end
|
90
105
|
|
91
|
-
|
92
|
-
|
93
|
-
|
106
|
+
def install_dependencies( debug, verbose )
|
107
|
+
deps_file = File.join( File.expand_path( @config.work_dir ),
|
108
|
+
'dependencies.txt' )
|
109
|
+
|
110
|
+
exec_maven( debug, verbose, deps_file )
|
111
|
+
|
112
|
+
result = []
|
113
|
+
File.read( deps_file ).each_line do |line|
|
114
|
+
dep = Jars::JarInstaller::Dependency.new( line )
|
115
|
+
result << dep if dep
|
116
|
+
end
|
117
|
+
result
|
118
|
+
ensure
|
119
|
+
FileUtils.rm_f( deps_file ) if deps_file
|
120
|
+
end
|
121
|
+
|
122
|
+
def exec_maven( debug, verbose, output )
|
94
123
|
m = Maven::Ruby::Maven.new
|
95
124
|
m.options[ '-f' ] = File.join( File.dirname( __FILE__ ),
|
96
|
-
'
|
97
|
-
|
125
|
+
'dependency_pom.rb' )
|
126
|
+
m.property( 'verbose', debug || verbose )
|
127
|
+
m.options[ '-q' ] = nil if !debug and !verbose
|
128
|
+
m.options[ '-e' ] = nil if !debug and verbose
|
129
|
+
m.options[ '-X' ] = nil if debug
|
98
130
|
m.verbose = debug
|
99
|
-
|
131
|
+
m.property( 'jbundler.outputFile', output )
|
132
|
+
|
100
133
|
@configurator.configure( m )
|
101
|
-
|
102
|
-
m.exec
|
134
|
+
|
135
|
+
m.exec( 'dependency:list' )
|
103
136
|
end
|
104
137
|
end
|
105
138
|
end
|