我在目录'/ home / enterprise / pkg'中有一个本地gem(enterprise-0.0.1.gem)。 它依赖于active_directory gem(v 1.5.5),它在enterprise.gemspec文件中指定如下: -
gem.add_dependency("active_directory")
在我的应用程序的Gemfile中,我添加以下行: -
gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg'
当我这样做时
捆绑安装
从我的应用程序的源目录中,只安装了企业gem。因此,我点击了运行时错误以引用active_directory gem。
但是当我做的时候
gem install /home/enterprise/pkg/enterprise-0.0.1.gem
依赖关系得到解决,我可以在gem列表中看到active_directory gem。
为什么使用bundler的依赖项解析存在差异,而不是rubygems。
请告诉我是否需要提供有关环境的更多信息。 Ruby:1.9.2, RubyGems:1.8.24, Bundler:1.1.5, rvm:1.9.2。
我的enterprise.gemspec文件供参考: -
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/enterprise/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["example"]
gem.email = ["example@example.com"]
gem.description = %q{Enterprise Gem: example}
gem.summary = %q{Services: Authentication, Access Control}
gem.homepage = "http://example.com"
gem.files = %w[
README.md
Rakefile
Gemfile
Gemfile.lock
enterprise.gemspec
lib/enterprise.rb
lib/enterprise/auth_service.rb
lib/enterprise/version.rb
]
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.name = "enterprise"
gem.require_paths = ["lib"]
gem.version = Enterprise::VERSION
gem.add_dependency("active_directory")
end
答案 0 :(得分:2)
我遇到了同样的问题,最后删除了Gemfile.lock来解决问题。
答案 1 :(得分:0)
您的gem是否有一个包含以下内容的Gemfile?
source 'https://rubygems.org'
# Specify your gem's dependencies in enterprise.gemspec
gemspec
尝试在您的应用程序gemspec中添加require
gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg', :require => "active_directory"
答案 2 :(得分:0)
在gem.add_runtime_dependency
中使用gemspec
- 而不是add_dependency
,无论是否将Gemfile
添加到^/flashmediaelement.swf$
,都需要宝石。