使用本地gem与Bundler

时间:2015-01-12 16:21:25

标签: bundler

我创建了一个内部gem,用于我希望包含在我的Gemfile中的Rails项目。

宝石托管在Github.com上的私人仓库中(所以:git不是一个选项)所以我假设最好的方向是包括宝石:path,例如

gem 'mygem', :path => '/path/to/gem/dir'

我很好奇:

  • 宝石的理想位置在哪里? (vendor/?)
  • 如果供应商是最佳位置,那么我不需要将gem添加到我的项目存储库中(因为默认情况下会忽略vendor/
  • 我正在使用Capistrano来部署我的项目; Capistrano应该如何知道本地宝石,以便它也可以部署它?

1 个答案:

答案 0 :(得分:0)

您可以访问供应商位置,并在gemfile中获取私有gem的身份验证信息,如下所示:

gem' foo',:git => ' https://my_username:my_password@github.com/my_github_account/my_repo.git'

但是,我猜你在gemfile中暴露这些敏感信息会很不舒服,所以你可以在你的gem文件中使用基于git协议的url:

GIT中://github.com/username/repo.git

基于git协议的网址是只读的,因此您的私人存储应该是完整的。

另外,我确信您可以编写一个capistrano任务来将私有gem部署到供应商目录,但这可能涉及在capistrano任务中输入您的github用户名/密码。此外,您可以在部署期间提示输入用户名/密码,而不是将其置于capistrano任务中。