- Enhance 'excluded_gems' so that an empty extension dir with 'gem.build_complete' is included in jar file
- New config attribute 'excluded_gems' to exclude certain gems from being included in the jar file.
Gems specified in 'excluded_gems' are not included in the jar file and not available at runtime.
This allows to exclude gems which are dependencies of other gems that are not needed for the application and are excluded from initialization by 'gem name, require: false'.
- Show JRuby warnings at execution of jar file only if environment variable
DEBUGis set to 'true'
- Version conflicts with installed system default gems are fixed.
This is done by supressing the load/activate of the target gems during the jar file build. - Platforms attribute for JRuby 10.0.3.0 is "universal-java" now, without the previous suffix with Java major number.
So, replacement of "universal-java-XX" directories in jar file with current Java major number at jar startup isn't necessary for recent JRuby versions
- Enable Ruby and JRuby warnings ($VERBOSE = true) in call of 'jarble' if environment variable
DEBUGis set
- Native gem extensions are also copied into the jar file if the gem has a native extension
If the extension is of platform type 'universal-java-XX' then the 'XX' in the dir name 'universal-java-XX' is corrected with the real Java major version at start of the jar file.
Extensions of other platform types are copied as is.
- config attribute 'gemfile_groups' established to specify the groups of the Gemfile which should be included in the jar file
- config attribute
compile_java_versionremoved and replaced by 'java_opts' - new config attribute
java_optsallows to set additional options for the Java compiler used for jar file bootstrap code java_optsdoes not affect the optional AOT compilation of Ruby files.- new config attribute
jrubyc_optsallows to set additional options for JRuby's AOT compiler used for compilation of Ruby files
- remove temporary folder with extracted jar content after termination of Ruby code even if Ruby code terminates the JVM hard with 'exit' or 'System.exit'
- provide exit code of Ruby code as exit code of the jar file execution
- new config attribute "config.compile_java_version" allows control of setting for "javac -source and -target" for AOT compilation
- fix typo with smart quotes in config.rb
- Warning if Ruby-specific environment variables (GEM_HOME etc.) are set which may cause malfunction of app in jar file
- Accept jar file locations with blanks in the path, especially for Windows
- Setting
compile_ruby_files=truecompiles only .rb file of the application, but does not compile the .rb files in gems.
Compiling the gems also remains an open task. - Bugfix: Accept spaces in the path to the jar file, especially for Windows
- Use file .ruby-version to define the JRuby version for the jar file only if .ruby-version contains a valid jRuby version
- excludes_from_compile specifies paths as the location in the jar file
- Desupport of configuration attribute include_gems_to_compile
- Show used configuration values in log output
- Exclude certain dirs or files from compilation with 'excludes_from_compile' option in config file
- Ruby files remain originally in jar if compile fails for a single file.
- Gems are compiled only if include_gems_to_compile=true
- Add ahead of time compilation support for JRuby
- Bugfix: Do not clone default gems, because they are already included in the jruby jars standard library
- Bugfix: use minor ruby version without patch level for gem files location
- Jarbler also supports Gemfile references to gems with git dependencies now
- Removed .jruby-version so that the jruby version is not fixed anymore
- extract valid gem paths from Bundler instead of using the environment variable GEM_PATH
- Fixed the bug 'java.lang.ClassNotFoundException: org.jruby.Main' with Windows
- Initial release