【发布时间】:2009-11-02 18:49:03
【问题描述】:
我正在使用 NetBeans 作为我的 IDE 创建一个新的 ruby gem。初始项目结构包含一个带有 gem 规范和其他 rake 任务的 Rakefile。
我的问题是,将 gem 规范放在 Rakefile 中与将它放在 .gemspec 文件中有什么区别?在哪里声明规范是否有最佳实践?每个 gem 是否也应该包含一个 gemspec 文件,或者 Rakefile 中的所有内容都足够了吗?
【问题讨论】:
我正在使用 NetBeans 作为我的 IDE 创建一个新的 ruby gem。初始项目结构包含一个带有 gem 规范和其他 rake 任务的 Rakefile。
我的问题是,将 gem 规范放在 Rakefile 中与将它放在 .gemspec 文件中有什么区别?在哪里声明规范是否有最佳实践?每个 gem 是否也应该包含一个 gemspec 文件,或者 Rakefile 中的所有内容都足够了吗?
【问题讨论】:
在你的 Rakefile 中有一个任务来为你构建一个 gem 在大多数情况下是可以的。但是我更喜欢在项目根目录中有一个 gemspec 文件,因为大多数人希望这些设置存在而不是埋在 Rakefile 中。
就差异而言,Rakefile 将使用 rake 任务在其内联 gemspec 上运行 gem build 命令。 IE。 rake gem:build 或者如果使用 gemspec 你运行命令 gem build .gemspec
例如 Jeweler,一个使用 Github 创建和管理 Rubygem 项目的助手,将基本规范保存在 Rakefile 中,然后生成一个 gemspec 文件,其中包含来自 .gitignore 的设置以及用于生成 rdoc 的通用默认设置等。
【讨论】: