Rails Engine gem使用来自git的另一个Rails引擎gem

时间:2013-09-13 14:37:17

标签: ruby-on-rails ruby-on-rails-4 rails-engines

Rails 4 @ Ruby 2

所以我有两个无法上传到Rubgems的引擎(A,B)宝石,因为代码是私有的,所以即时通讯使用git。

A必须使用B,所以基本上我应该在A gemspec中添加B作为依赖。据我所知,gemspec不允许基于git的gems作为gemspec中的依赖。

我尝试使用A gemfile但没有运气。有出路吗?

1 个答案:

答案 0 :(得分:3)

对于开发或测试,您可以在Gemfile中执行此操作。您甚至可以将其指向使用本地文件夹。

gem 'gem_b', path: "/path/to/the/folder"

或使用git参考

gem 'gem_b', git: "git@github.com:user/gem_b.git"

这将允许您进行开发和测试。

另一个选择就是这个。如果你有2个引擎,我假设你也有一个Rails应用程序来使用它们。在那个rails应用程序中,你可以使用git引用一个接一个地在Gemfile中要求它们。

gem 'gem_b', git: "git@github.com:user/gem_b.git"
gem 'gem_a', git: "git@github.com:user/gem_a.git"

如果必须在gemspec中声明此依赖项,则可以使用rake构建gem;

cd /path/to/gem_b
rake build

这将在gem_b.gem文件夹下创建一个pgk文件。

然后您可以使用gem instal安装在本地

gem install pgk/gem_b.gem 

现在你在我们的本地安装了gem_b。将它作为gemspec中的依赖项添加没有问题。

当您准备发布应用程序时,您需要将gem_b.gem复制到您的服务器并使用常规方式安装;

gem install /full/path/to/gem_b.gem