2009-11-02 30 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