我正在开发一个与Rails项目一起使用的gem,并想在本地尝试使用我的另一个Rails应用程序。
我用bundle exec rake release
构建了一个gem,它将.gem文件放在/ pkg目录中。
然后,在我的Rails应用程序中,我将以下内容添加到我的gemfile
中 gem 'mygem', '0.1.1', path: '/Users/me/projects/mygem/ruby/pkg'
然后我跑了bundle install
说它安装了宝石。当我这样做时,它会从路径中删除宝石。 IDK去了哪里。
当我启动Rails应用程序时,它就像宝石一样不包括在内。
有趣的是,如果我添加一个甚至不存在的版本,它仍然说bundle install
工作正常。 (例如:gem 'mygem', '0.1.2345', path: '/Users/me/projects/mygem/ruby/pkg'
)
我应该如何使用Rails应用程序在本地试用我的Gem?
这个问题与How can I specify a local gem in my Gemfile?不同,因为我明确告诉我的Gemfile中的bundle使用本地gem,并给出了路径,但它仍然不起作用。当我运行bundle install时,它说
Using mygem 0.1.1 from source at /Users/me/projects/mygem/pkg
所以你认为它运作正常,但它仍然没有。
有趣的是,如果我尝试使用不存在的版本号,例如mygem 1.2.3,它仍然会成功运行bundle install,这非常奇怪,看起来像一个bug:
Using mygem 1.2.3 (was 0.1.1) from source at /Users/me/projects/mygem/pkg
答案 0 :(得分:2)
在使用Rails项目并行处理本地gem时,我更喜欢使用以下内容:
gem 'foo',
:git => '/path/to/local/git/repo',
:branch => 'my-fancy-feature-branch'