【问题标题】:Why 'bundler gem' adds 'rake' and 'rspec' to Gemfile and not to .gemspec file as a development dependencies?为什么'bundler gem'将'rake'和'rspec'添加到Gemfile而不是.gemspec文件作为开发依赖项?
【发布时间】:2020-09-15 22:57:17
【问题描述】:

我对 Ruby 世界不太熟悉。 Java 构建工具通常使用 测试范围 来处理 jUnit 之类的东西。

我用命令初始化了一个新项目:bundle gem new_gem_from_bundlerGemfile的内容是

source "https://rubygems.org"

# Specify your gem's dependencies in new_gem_from_bundler.gemspec
gemspec

gem "rake", "~> 12.0"
gem "rspec", "~> 3.0"

为什么不:

group :development do
  gem "rspec", "~> 3.9.0"
  gem "rake", "~> 3.0"
end

另外,由于有一个 .gemspec 文件,我希望 rakerspec 定义如下:

spec.add_development_dependency 'rake', '~> 12.0'
spec.add_development_dependency 'rspec', '~> 3.0'

为什么将它们声明为常规的“gem”依赖项?

【问题讨论】:

    标签: ruby rubygems bundler gemspecs


    【解决方案1】:

    Bundler 使用模板文件来创建新的 gem。您可以根据需要更改模板文件Gemfile.ttnewgem.gemspec.tt。例如你可以使用这个Gemfile.tt:

    source "https://rubygems.org"
    
    # Specify your gem's dependencies in <%= config[:name] %>.gemspec
    gemspec
    

    要查找模板文件的位置,您可以使用以下 shell 命令:

    find $(dirname $(gem which -g bundler)) -name Gemfile.tt
    

    【讨论】:

    • 很高兴知道。但仍不清楚为什么没有在测试或开发范围内声明“rspec”。
    猜你喜欢
    • 2012-07-03
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多