Я (к сожалению) не могу опубликовать код для этого (пока ...), но я успешно сделал следующее:
Hack warbler (в основном заменяет весь код упаковки драгоценных камней в комплектовщиках) для копирования драгоценных камней, указанных с помощью :path
, в vendor/gems
(обычное расположение драгоценных камней gems/gems
). Это копирование было сделано почти так же, как копирование драгоценных камней из спецификации :git
.
Пакет Monkeypatch, поэтому при загрузке Gemfile
с :path
спецификациями они переписываются так, чтобы указывать на vendor/gems
.
Это не красиво, но я был очень доволен этим решением.
Другой вариант, который я видел, - создать каталог vendor/gems
, который содержит символические ссылки на все драгоценные камни, которые используют :path
в Gemfile. Славка будет жаловаться на то, что не поддерживает :path
гемов, но они будут скопированы в файл WAR через символические ссылки. Мне не нравится это решение, потому что вы должны поддерживать :path
в Gemfile и символической ссылке, но его легче реализовать, чем выше.
Кроме того, я согласен с Ником Сигером в том, что поддержка :path
«как есть» (без какого-либо из перечисленных выше хаков) лишает цели использования автономного файла WAR, но автономный файл WAR не всегда желателен. Конечно, есть и компромиссы для несамостоятельного файла WAR, но одним из преимуществ является его меньший размер, более быстрое копирование, распаковка и т. Д. Конечно, поддержка этого потребует внесения изменений в JRuby-Rack, а также в Warbler.