如何解决自定义 RubyGem 的依赖关系?
How to resolve dependencies of a custom RubyGem?
我正在写一个 ruby gem,它依赖于另一个 gem。
例如。我正在编写一个名为“ABC”的 gem,它依赖于“XYZ”。如何让 gem 在我尝试安装“ABC”时自动安装“XYZ”?
I'm writing a gem called "ABC" which has a dependency on "XYZ". How to make my gem install "XYZ" automatically when I try to install "ABC" ?
您不应尝试让 gem 自动安装依赖项。这就是 字面上 RubyGems 的用途。 RubyGems 会自动解决依赖关系,您的 gem 不需要这样做。
只需在 .gemspec
文件中定义所需的依赖项:
https://guides.rubygems.org/specification-reference/#add_runtime_dependency
spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'
它们将在安装 gem 时安装(或者如果依赖项已经存在则使用)。
还有一种安装开发依赖项的方法:https://guides.rubygems.org/specification-reference/#add_development_dependency
spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'
对于开发所需的那些 gem(如 rspec
)但最终产品工作不需要。
我正在写一个 ruby gem,它依赖于另一个 gem。
例如。我正在编写一个名为“ABC”的 gem,它依赖于“XYZ”。如何让 gem 在我尝试安装“ABC”时自动安装“XYZ”?
I'm writing a gem called "ABC" which has a dependency on "XYZ". How to make my gem install "XYZ" automatically when I try to install "ABC" ?
您不应尝试让 gem 自动安装依赖项。这就是 字面上 RubyGems 的用途。 RubyGems 会自动解决依赖关系,您的 gem 不需要这样做。
只需在 .gemspec
文件中定义所需的依赖项:
https://guides.rubygems.org/specification-reference/#add_runtime_dependency
spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'
它们将在安装 gem 时安装(或者如果依赖项已经存在则使用)。
还有一种安装开发依赖项的方法:https://guides.rubygems.org/specification-reference/#add_development_dependency
spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'
对于开发所需的那些 gem(如 rspec
)但最终产品工作不需要。