ruby-on-rails - Rails Engine gem 使用来自 git 的另一个 Rails 引擎 gem

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

Rails 4 @Ruby 2

所以我有两个无法上传到 Rubgems 的引擎 (A, B) gem,因为代码是私有(private)的,所以我使用 git。

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

我尝试使用 A gemfile 但没有成功。有出路吗?

最佳答案

对于开发或测试,您可以在 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

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

然后你可以像这样使用 gem instal 安装它到你的本地

gem install pgk/gem_b.gem 

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

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

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

关于ruby-on-rails - Rails Engine gem 使用来自 git 的另一个 Rails 引擎 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789010/

相关文章:

ruby-on-rails - 如何优雅地关闭 Mongrel Web 服务器

ruby-on-rails - 在 rails 上使用选择和数字 ruby 形成

ruby-on-rails - 没有路由匹配 [GET] "/stylesheets/frontend.css"

ruby-on-rails - 使用 Ruby on Rails 的 Postgres 公用表表达式查询

ruby-on-rails - 验证最后一条记录是否在最后一分钟内创建

ruby-on-rails - rails/ruby 合并两个具有相同键、不同值的散列

ruby-on-rails - 混合使用 ERB 和 Rails 路径助手编译 YAML

ruby-on-rails - 即使指定了 `maintain_test_schema!`,测试迁移也未与我的 Rails 引擎一起运行

ruby-on-rails - Rails 最佳实践 - 引擎

ruby-on-rails - Rails 4 使用 Engine 中的 Factory Girl 工厂