4

我有一个正在处理的项目,它使用了我们在内部创建的 gem。它不托管在 ruby​​gems.org 或 github 上。但是我们确实在我们的存储库和本地机器上的路径中拥有它。

在我们的 Gemfile 中,我们有类似这样的内容:

gem "our-custom-gem", :path => "/path-to/our-custom-gem"

我们正在尝试打包我们所有的 gem,以便我们可以使用 warbler gem 创建一个 .war 文件,以便使用 jRuby 进行部署。

我们希望能够运行“bundle install”或“bundle install --local”之类的东西,以确保安装了所有的 gem。然后让 bundler 获取我们 Gemfile 中指定的所有依赖项,使用“bundle package”命令将它们放入 vendor/bundle 中。

但基于此链接(http://gembundler.com/man/bundle-package.1.html),看起来捆绑器无法打包使用 :path 或 :git 作为源指定的 gem。

有没有人找到解决这个问题的方法?

您如何“捆绑”本地的、不属于 git 存储库或 ruby​​gems.org 的 gem?

谢谢。

4

2 回答 2

2

爆炸新闻!

从 Bundler 1.2 开始, bundle package 命令除了 .gem 文件外,还可以打包 :git 和 :path 依赖项。这需要通过 --all 选项显式启用。一旦使用, --all 选项将被记住。

文档: http: //gembundler.com/man/bundle-package.1.html

于 2012-09-24T09:55:25.440 回答
0

从这个pull request来看,这是 1.1 计划的一个特性。

不过,其中一位核心开发人员提供了这种解决方法

cd vendor/git
git clone git://github.com/foo/foo.git

然后,在您的 Gemfile 中,gem "foo", :path => "vendor/git/foo"。

有一些工作来解决这个分支上的问题。

祝你好运!

于 2011-09-01T09:31:30.380 回答