3

导轨 4 @ Ruby 2

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

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

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

4

1 回答 1

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 reference 一个接一个地在 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 install 在本地安装它

gem install pgk/gem_b.gem 

现在您已经在我们的本地安装了 gem_b。在 gemspec 中添加它作为依赖项不会有问题。

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

gem install /full/path/to/gem_b.gem 
于 2013-09-14T04:34:22.527 回答