导轨 4 @ Ruby 2
所以我有两个无法上传到 Rubgems 的引擎(A,B)gem,因为代码是私有的,所以我使用 git。
A 必须使用 B,所以基本上我应该在 A gemspec 中添加 B 作为依赖项。据我所知,gemspec 不允许基于 git 的 gem 作为 gemspec 中的依赖项。
我尝试使用 A gemfile 但没有运气。有出路吗?
导轨 4 @ Ruby 2
所以我有两个无法上传到 Rubgems 的引擎(A,B)gem,因为代码是私有的,所以我使用 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 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