ruby - 为什么'bundler gem'将'rake'和'rspec'添加到Gemfile而不是.gemspec文件作为开发依赖项?
问题描述
我对 Ruby 世界不太熟悉。Java 构建工具通常对 jUnit 之类的东西使用测试范围。
我用命令初始化了一个新项目:bundle gem new_gem_from_bundler
内容Gemfile
是
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
文件,我希望rake
并rspec
像这样定义:
spec.add_development_dependency 'rake', '~> 12.0'
spec.add_development_dependency 'rspec', '~> 3.0'
为什么将它们声明为常规的“宝石”依赖项?
解决方案
Bundler 使用模板文件来创建新的 gem。您可以根据需要更改模板文件Gemfile.tt
和newgem.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
推荐阅读
- linked-server - SQL 数据库托管实例中的链接服务器
- amazon-web-services - AWS EC2:m5.24xlarge 与 m5.metal
- javascript - 从数组中提取数据并将其包含到javascript中的对象中
- c# - 有效地将大文件中的所有字节值求和
- .net - 从 .net Web 应用程序调用 reactjs Web 应用程序
- python-3.x - 如何在数据框中将无字段修复为假
- typescript - Dart 中的字符串文字类型(如 TypeScript 中的)?
- laravel - 如何使用 laravel 获取连续 6 个月没有报告的用户?
- javascript - 有什么方法可以根据已签出产品标题中的关键字将客户重定向到链接?
- ionic-framework - Ionic 4 可滑动标签在滑动时出错