Tôi có đá quý cục bộ (enterprise-0.0.1.gem) trong thư mục '/ home/enterprise/pkg'. Nó có phụ thuộc vào viên ngọc active_directory (v 1.5.5), được quy định tại đó là tập tin enterprise.gemspec như thế này: -'gói cài đặt' cho đá quý cục bộ không giải quyết các phụ thuộc, trong khi 'cài đặt đá quý' không
gem.add_dependency("active_directory")
Trong Gemfile ứng dụng của tôi, tôi thêm dòng sau: -
gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg'
Khi tôi làm
bó cài đặt
từ thư mục nguồn của ứng dụng của tôi, chỉ có gem doanh nghiệp được cài đặt. Do đó, tôi nhấn lỗi thời gian chạy cho tham chiếu đến gem active_directory.
Nhưng khi tôi làm
gem install /home/enterprise/pkg/enterprise-0.0.1.gem
sự phụ thuộc được giải quyết và tôi có thể nhìn thấy viên ngọc active_directory trong đá quý danh sách.
Tại sao có sự khác biệt về độ phân giải phụ thuộc với gói, chứ không phải với rubygems.
Vui lòng cho tôi biết nếu tôi cần cung cấp thêm thông tin về môi trường. Ruby: 1.9.2, RubyGems: 1.8.24, Bundler: 1.1.5, rvm: 1.9.2.
tập tin enterprise.gemspec tôi để tham khảo: -
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/enterprise/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["example"]
gem.email = ["[email protected]"]
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
Vâng, tôi có những thứ này trong Gemfile của gem doanh nghiệp của tôi. Bạn có cần tệp gemspec của tôi không? – neosab
Không, nó dường như không cài đặt gem active_directory với tùy chọn: require. Nó hoạt động theo cách tương tự như trước đây. Chỉ có gem doanh nghiệp được cài đặt. – neosab
Tôi chỉ tò mò thực hành tiêu chuẩn để sử dụng một viên ngọc địa phương tùy chỉnh là gì. Thực hiện [cài đặt gem 'doanh nghiệp' & gói cài đặt] mỗi lần tôi chuyển ứng dụng của mình sang máy chủ sản xuất không có ý nghĩa. – neosab