2012-09-27 19 views
3

我正在開發一個需要active_admin gem的項目。但我需要修改activeadmin:當與Capistrano部署時,「本地」gem不工作

  • 我克隆active_admin一個目錄我創建內部回購協議:git的刪除裏面/vendor/gems/
  • /vendor/gems/active_admin/
  • 添加文件夾到我自己的git倉庫
  • 我修改的Gemfile指向的文件夾:

    gem "active_admin", :path => "vendor/gems/active_admin"

它在本地開發的偉大工程:我做bundle install,它工作正常:

Using activeadmin (0.5.0) from source at ./vendor/gems/active_admin 

但是當我做了cap deploy,捆綁抱怨:

** [out] Could not find activeadmin-0.5.0 in any of the sources 

有沒有神奇的解決方案?我應該將activeadmin包含在另一個目錄如lib中並將其從gemfile中刪除嗎?

感謝您的幫助!

Pof

+0

同樣適用於我:*** [err :: myserver.com] fatal:不是git存儲庫(或任何父目錄):.git – Jonas

回答

1

嘗試指定一個git路徑而不是本地路徑。

gem "active_admin", :git => 'git://........../gem_name.git' 

我有同樣的問題,部署到Heroku的,我得到它的工作確定一個git路徑,而不是本地路徑。檢查:How to get working a local gem on heroku?

+0

這就是我所做的,關於需求的迫切性,但是這個將代碼拆分爲兩個git倉庫。我想要做的是真的在我的代碼中包括gem,因爲特殊的activeadmin只會用在這個項目中...... – PofMagicfingers

+0

我知道這不是最好的方式,但我不知道爲什麼另一種方式不起作用。也許是一個bug ... –

0

Bundler v1.2確實抓住它從github,看到細節here

此外,使用打包程序,您可以將您構建的寶石打包到回購站中,而無需克隆它們的github回購站。剛剛運行

$ bundle package 
$ bundle install 

在您的回購協議中,並提交了bundler添加到回購的寶石。 或者,您可以使用您在本地創建的gem將其放在/ vendor/cache中,其他所有的gem最終結束。

+0

這與我的問題無關:D我並不試圖從git獲取或緩存gem ...我試圖使用本地gem並在與capistrano配置時使其工作。 – PofMagicfingers

+0

我不認爲這是無關緊要的;)我一直這樣做,我們有3個寶石,我們在本地(或在一個構建服務器上)爲我們的軟件構建,並且我們將它們與回購部署中的測試/登臺/生產代碼。然後capistrano照顧其餘的安裝到正確的紅寶石版本/ gemset組合 – matov

+0

也許你是對的......但重點是要在同一個文件夾中的一切。使用您的解決方案,仍然有多個文件夾和工具可以管理:D – PofMagicfingers