我正在使用NetBeans作为我的IDE创建一个新的ruby gem。初始项目结构包含一个带有gem规范和其他rake任务的Rakefile。
我的问题是,将Rakefile中的gem规范与位于.gemspec文件中的gem规范相比有什么区别?在哪里声明规范是否有最佳实践?每个gem都应该包含gemspec文件还是Rakefile中的所有内容都足够了?
答案 0 :(得分:5)
在你的Rakefile中有一个任务为你构建一个gem就可以了。但是我更喜欢在项目根目录中有一个gemspec文件,因为大多数人都希望这些设置存在,而不是埋在Rakefile中。
就差异而言,Rakefile将使用rake任务在其内联gemspec上运行gem build命令。即。 rake gem:build或者如果使用gemspec你运行命令gem build .gemspec
例如,Jeweler是使用Github创建和管理Rubygem项目的助手,它在Rakefile中保留一个基本规范,然后生成一个gemspec文件,其中包含.gitignore的设置以及用于生成rdoc等的通用默认设置。 / p>