Параметр пути к файлу вейблера не поддерживается - PullRequest
3 голосов
/ 31 марта 2012

Есть ли рекомендуемый обходной путь для певчей птицы, не поддерживающей параметры пути в Gemfile? Есть ли фундаментальная причина, почему путь не поддерживается (и я не мог просто реализовать его)?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Параметр пути не является переносимым.Ожидается, что Bundler сможет найти код по этому пути, что в некоторой степени побеждает назначение автономного файла военных действий.

Обходной путь может заключаться в запуске «git init; git commit -a» вкаталог gem-файла на основе пути и вместо этого обрабатывает его как gem-файл на основе git.Затем Bundler может извлечь копию кода, а Warbler может сохранить копию в файле войны.

0 голосов
/ 18 июля 2012

Я (к сожалению) не могу опубликовать код для этого (пока ...), но я успешно сделал следующее:

  1. Hack warbler (в основном заменяет весь код упаковки драгоценных камней в комплектовщиках) для копирования драгоценных камней, указанных с помощью :path, в vendor/gems (обычное расположение драгоценных камней gems/gems). Это копирование было сделано почти так же, как копирование драгоценных камней из спецификации :git.

  2. Пакет Monkeypatch, поэтому при загрузке Gemfile с :path спецификациями они переписываются так, чтобы указывать на vendor/gems.

Это не красиво, но я был очень доволен этим решением.


Другой вариант, который я видел, - создать каталог vendor/gems, который содержит символические ссылки на все драгоценные камни, которые используют :path в Gemfile. Славка будет жаловаться на то, что не поддерживает :path гемов, но они будут скопированы в файл WAR через символические ссылки. Мне не нравится это решение, потому что вы должны поддерживать :path в Gemfile и символической ссылке, но его легче реализовать, чем выше.


Кроме того, я согласен с Ником Сигером в том, что поддержка :path «как есть» (без какого-либо из перечисленных выше хаков) лишает цели использования автономного файла WAR, но автономный файл WAR не всегда желателен. Конечно, есть и компромиссы для несамостоятельного файла WAR, но одним из преимуществ является его меньший размер, более быстрое копирование, распаковка и т. Д. Конечно, поддержка этого потребует внесения изменений в JRuby-Rack, а также в Warbler.

...