Я создал драгоценный камень в моей локальной системе для интеллектуального анализа текста, который использует внешние библиотеки Java для задач классификации.Я пытаюсь использовать мощь Java через JRuby здесь.Структура каталогов выглядит следующим образом:
- classifier/
* classifier.gemspec
* Gemfile
* Gemfile.lock
* lib/
* classifier/
* version.rb
* sample_classifier.rb
* classifier.rb
* java/
* sample_lib.jar
* another_sample_lib.jar
* yet_another_sample_lib.jar
* Rakefile
Я загружаю эти jar-файлы в lib/classifier.rb
как
Dir["java/*.jar"].each{|jar| require jar}
Я добавил этот гем в репозиторий Git и сослался на него в Gemfileмоего проекта Rails 3.0.9.Тем не менее, мой sample_classifier.rb не может найти любые классы, импортируемые из любого из jar-файлов в lib/java
.
Все будет работать, если я скопирую lib/java
в мое приложение Rails
lib/ directory
и добавьте следующее в sample_classifier.rb
:
Dir["lib/java/*.jar"].each{|jar| require jar}
Однако я не думаю, что это хорошая практика - выкладывать зависимости гема в моем приложении Rails.Есть ли лучший способ добиться этого?Я искал для объединения jar-файлов с гемом, но я нашел результаты для совершенно противоположного, то есть для объединения гемов внутри jar-файла.Могу ли я добавить эти jar-файлы в config.autoload_path Rails или аналогичные, чтобы загрузить их при запуске приложения?Является ли хорошей практикой объединять зависимости jar с гемом?
Я уверен, что есть более чистый способ сделать это.