2009-11-02 21 views
4

我正在使用NetBeans作为我的IDE创建一个新的ruby gem。最初的项目结构包含一个带有gem规范和其他rake任务的Rakefile。Rakefile中的Gem规范与.gemspec

我的问题是,具有位于Rakefile中的gem规范与位于.gemspec文件中的gem规范相比有什么区别?在哪里申报规范是否有最佳做法?每个宝石是否应该包含一个gemspec文件或者Rakefile中的所有内容都足够了?

回答

5

在你的Rakefile中为你创建一个gem的任务对大多数情况来说都没问题。但是我更喜欢在项目根目录下有一个gemspec文件,因为大多数人会希望这些设置在那里,而不是埋在Rakefile中。

就差异而言,Rakefile将使用rake任务在其内联gemspec上运行gem build命令。即。耙宝石:构建或如果使用gemspec你运行命令gem build .gemspec

例如Jeweler,一个用Github创建和管理Rubygem项目的助手,在Rakefile中保留一个基本规格,然后生成一个gemspec文件包含来自.gitignore的设置以及用于生成rdoc的一般默认设置等。

+0

是的,我也更喜欢在根目录下的独立.gemspec文件。这很容易理解,耙子我必须搜索信息存储在哪里。 – shevy 2014-02-22 09:59:31

+0

目前尚不清楚:是否有足够的独立.gemspec文件来运行有关的Rake任务,或者是否有必要将其内容复制到Rakefile中? – Alexey 2014-04-30 10:13:38

+0

如果对于相关的rake任务,内联gemspec定义是​​必要的,如何保持与.gemspec文件同步? – Alexey 2014-04-30 10:14:47