jbundler 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|