jarbler 0.2.1 → 0.2.3
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/CHANGELOG.md +8 -0
- data/README.md +2 -1
- data/lib/jarbler/builder.rb +5 -0
- data/lib/jarbler/config.rb +24 -1
- data/lib/jarbler/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bba70c5fbf20494c82fc683d2e4ad8c39952000e8a525c7070f142219f7c38bd
|
4
|
+
data.tar.gz: '085db112eb0163afbad08545074af2a3994ec6cc498f56b6da16910833c2fe62'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a18adb5dfd17593a8c9fa8fb0c997b1e65544705a1074f39984923c6bfd9d82eb938c30b32b09339d349a17cb2e591ed817812060228bb94ecdb6e8cc890e2f
|
7
|
+
data.tar.gz: 36b98d4f3293ffcc11bbec6ef8e53f57a934d7885d30be43c6ed4c0dbcf3c54802d606d6a5d11292c37a4e1681077a92ecc7f9d23a49008ada7b95c1b0634d17
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.2.3] - 2024-06-13
|
4
|
+
|
5
|
+
- Show used configuration values in log output
|
6
|
+
|
7
|
+
## [0.2.2] - 2024-06-13
|
8
|
+
|
9
|
+
- Exclude certain dirs or files from compilation with 'excludes_from_compile' option in config file
|
10
|
+
|
3
11
|
## [0.2.1] - 2024-06-13
|
4
12
|
|
5
13
|
- Ruby files remain originally in jar if compile fails for a single file.
|
data/README.md
CHANGED
@@ -58,7 +58,8 @@ The default configuration is focused on Ruby on Rails applications.<br>
|
|
58
58
|
| compile_ruby_files | false | Ahead of time compilation of all .rb files of application and Gem dependencies to .class files. Only store .class files in jar. Requires JRuby runtime. |
|
59
59
|
| executable | "bin/rails" | The ruby start file to run at execution of jar file. File extension .class is used automatically if start file is .rb and AOT compilation is used. |
|
60
60
|
| executable_params | ["server", "-e", "production", "-p", "8080"] | Command line parameters to be used for the ruby executable |
|
61
|
-
|
|
61
|
+
| excludes_from_compile | ["config"] | The files and dirs of the project to exclude from the compilation of .rb files |
|
62
|
+
| excludes | ["tmp/cache", "tmp/pids", ...] (see generated template file for whole content) | The files and dirs of the project to exclude from the include option |
|
62
63
|
| include_gems_to_compile | false | Should .rb files of the project gems also be compiled if compile_ruby_files = true |
|
63
64
|
| includes | ["app", "bin", "config", ...] (see generated template file for whole content) | The files and dirs of the project to include in the jar file |
|
64
65
|
| jar_name | < Name of project dir >.jar | The name of the generated jar file |
|
data/lib/jarbler/builder.rb
CHANGED
@@ -275,6 +275,11 @@ module Jarbler
|
|
275
275
|
ruby_files = ruby_files.select { |f| !(f =~ /\.#{File::SEPARATOR}gems#{File::SEPARATOR}/) } # Exclude ./gems/* directories from compiling
|
276
276
|
end
|
277
277
|
|
278
|
+
# Exclude named files or directories from compiling
|
279
|
+
config.excludes_from_compile.each do |exclude|
|
280
|
+
ruby_files = ruby_files.select { |f| !(f =~ /\.#{File::SEPARATOR}app_root#{File::SEPARATOR}#{exclude}/) }
|
281
|
+
end
|
282
|
+
|
278
283
|
ruby_files.each do |ruby_file|
|
279
284
|
debug "Compile Ruby file #{ruby_file}"
|
280
285
|
full_file_name = File.join(Dir.pwd, ruby_file) # full name including path is required by the JRuby compiler
|
data/lib/jarbler/config.rb
CHANGED
@@ -3,7 +3,7 @@ require 'json'
|
|
3
3
|
|
4
4
|
module Jarbler
|
5
5
|
class Config
|
6
|
-
attr_accessor :jar_name, :includes, :excludes, :jruby_version, :executable, :executable_params, :compile_ruby_files, :include_gems_to_compile
|
6
|
+
attr_accessor :jar_name, :includes, :excludes, :jruby_version, :executable, :executable_params, :compile_ruby_files, :include_gems_to_compile, :excludes_from_compile
|
7
7
|
|
8
8
|
CONFIG_FILE = 'config/jarble.rb'
|
9
9
|
# create instance of Config class with defaults or from config file
|
@@ -23,12 +23,31 @@ module Jarbler
|
|
23
23
|
config.executable = config.executable.sub(/\.rb$/, '.class') if config.compile_ruby_files
|
24
24
|
|
25
25
|
config.validate_values
|
26
|
+
|
27
|
+
puts ""
|
28
|
+
if File.exist?(CONFIG_FILE)
|
29
|
+
puts "Configuration loaded from file #{File.join(Dir.pwd, CONFIG_FILE)}"
|
30
|
+
else
|
31
|
+
puts "No configuration file found at #{File.join(Dir.pwd, CONFIG_FILE)}. Using default values."
|
32
|
+
end
|
33
|
+
puts "Used configuration values are:"
|
34
|
+
puts " compile_ruby_files: #{config.compile_ruby_files}" if config.compile_ruby_files
|
35
|
+
puts " excludes: #{config.excludes}" unless config.excludes.empty?
|
36
|
+
puts " excludes_from_compile: #{config.excludes_from_compile}" unless config.excludes_from_compile.empty?
|
37
|
+
puts " executable: #{config.executable}"
|
38
|
+
puts " executable_params: #{config.executable_params}" unless config.executable_params.empty?
|
39
|
+
puts " include_gems_to_compile: #{config.include_gems_to_compile}" if config.include_gems_to_compile
|
40
|
+
puts " includes: #{config.includes}" unless config.includes.empty?
|
41
|
+
puts " jar_name: #{config.jar_name}"
|
42
|
+
puts " jruby_version: #{config.jruby_version}"
|
43
|
+
puts ""
|
26
44
|
config
|
27
45
|
end
|
28
46
|
|
29
47
|
def initialize
|
30
48
|
@compile_ruby_files = false
|
31
49
|
@excludes = %w(tmp/cache tmp/pids tmp/sockets vendor/bundle vendor/cache vendor/ruby)
|
50
|
+
@excludes_from_compile = %w(config)
|
32
51
|
@executable = 'bin/rails'
|
33
52
|
@executable_params = %w(server -e production -p 8080)
|
34
53
|
@include_gems_to_compile = false
|
@@ -72,6 +91,9 @@ module Jarbler
|
|
72
91
|
# Compile also the .rb files of the gems of the project to Java .class files?
|
73
92
|
# config.include_gems_to_compile = #{include_gems_to_compile}
|
74
93
|
|
94
|
+
# Directories or files to exclude from the compilation if compile_ruby_files = true
|
95
|
+
# config.excludes_from_compile = #{excludes_from_compile}
|
96
|
+
|
75
97
|
".split("\n"))
|
76
98
|
end
|
77
99
|
|
@@ -137,6 +159,7 @@ module Jarbler
|
|
137
159
|
raise "Invalid config value for compile_ruby_files: #{compile_ruby_files}" unless [true, false].include?(compile_ruby_files)
|
138
160
|
raise "compile_ruby_files = true is supported only with JRuby! Current runtime is '#{RUBY_ENGINE}'" if compile_ruby_files && (defined?(RUBY_ENGINE) && RUBY_ENGINE != 'jruby')
|
139
161
|
raise "include_gems_to_compile = true is supported only if compile_ruby_files = true!" if include_gems_to_compile && !compile_ruby_files
|
162
|
+
raise "Invalid config value for excludes_from_compile: #{excludes_from_compile}" unless excludes_from_compile.is_a?(Array)
|
140
163
|
end
|
141
164
|
end
|
142
165
|
end
|
data/lib/jarbler/version.rb
CHANGED