jruby/jruby — pull request #1451 by mkristian (2014-01-27 13:31:17+00:00)
Title: jar dependency like old maven-gems

this PR is meant to base for further discussion.

previously maven-gems failed mainly version resolution with maven (on version conflict the dependency tree is used to determine the right version) works totally different then rubygems (version ranges).

this patch has two parts one which tracks loads jars and tracks versions. in case of conflicting versions ONLY the first jar is loaded and the second one just gives a warning. kind of the same you have with rubygems where it fails when a second version of a gems gets activated.

the second part is a Gem.post_install hock which uses the info from the installed Gem::Sepcification of the installed gem and looks for jar dependencies declared in the requirements section of the spec. and then those jars and its depencenies will be install using ruby-maven (which can use a gemspec as a POM !!). it also creates a file {gemspec.name}_jars.rb file which uses the jar_dependencies to track and load the vendored jars.

to main reason to vendor the jars is that regular bundler will just work.

in case there are version conflicts jbundler can help to resolve them or do it manually. it is a matter of which version gets required first, so the project can ensure this.

as an example I added the jar dependencies in jruby-openssl gem.