我最近開始使用Rake構建一些我的(非紅寶石)包。 Rake很好,但我發現缺少的是一種分層構建(在子目錄中聚集Rakefiles)的方法。由於這是大多數其他構建工具的常見功能,所以我想知道是否有人更熟悉Rake有一個好的解決方案。如何用rake做分層構建?
4
A
回答
2
我會爲非Ruby構建任務推薦Buildr。它基於Rake(位於它的頂部,允許您使用Rake的所有功能),但更符合編譯語言的語義。它也支持分層構建。
1
我也想不出辦法做到這一點。我結束了:
SUBDIR = "subdir"
task :subtask => SRC_FILES do |t|
chdir(SUBDIR) do
system("rake")
end
end
task :subtaskclean do |t|
chdir(SUBDIR) do
system("rake clean")
end
end
task :subtaskclean do |t|
chdir(SUBDIR) do
system("rake clobber")
end
end
task :default => [:maintask, :subtask]
task :clean => :subtaskclean
task :clobber => :subtaskclobber
有點爛。其實,真的很糟糕。我走遍了文檔,但沒有找到的<antcall>
我敢肯定,因爲這一切都Ruby和我勉強瞭解Ruby還有的require
荷蘭國際集團,或一些東西超明顯的方式等同。
1
Buildr使用範圍的概念,再加上項目的名稱。
Rake.application.current_scope應該是發現如何使用它們的入口點。我希望這有幫助。
0
我用來解決這個問題的解決方法是:
Dir.chdir(File.dirname(Rake.application.rakefile))
此語句在除了根層級層層運行,在每個Rake文件的開始。這是如何縮短的例子工程實踐:
/Rake文件:
task :default do
sh "rake -f component/rakefile"
end
/組件/ Rake文件
Dir.chdir(File.dirname(Rake.application.rakefile))
task :binary => OBJECTS do
sh "gcC#{SOURCES} -Iinclude -o #{TARGET}"
end
由於我是新來耙,我不相信這是最乾淨的解決它的方法,但它是我最終如何運作的。
相關問題
- 1. 用rake構建ember.js
- 2. 如何構建分層註釋樹?
- 3. 我如何構建分層JTable?
- 4. 使用SCons創建分層構建
- 5. Javascript-JSON:構建分層樹
- 6. Linq構建分層列表
- 7. 使用ColdFusion創建分層xml結構
- 8. 構建動態分層結構
- 9. 如何在R中構建具有分層結構的列表?
- 10. 如何在Android中構建分層結構?
- 11. 如何用架構層創建報表?
- 12. 如何構建層次結構?
- 13. 如何在knitr中使用網格逐步構建分層圖?
- 14. 我如何使用Apache Cassandra構建分層數據庫
- 15. 如何在codeigniter中爲用戶創建分層樹結構?
- 16. 如何用路徑列表創建分層結構?
- 17. Rails應用Rake任務不知道如何構建其他Rake任務
- 18. 如何使用nodejs做dojo構建?
- 19. 如何使用uclibc做靜態構建
- 20. 分層架構
- 21. 使用LingPipe做分層情緒分析
- 22. 使用Rake或Gem構建腳本?
- 23. 如何使用Rake for Rails項目創建目錄結構
- 24. 遞歸構建分層JSON樹?
- 25. neo4j Cypher分層樹構建響應JSON
- 26. 與SCons的真正分層構建?
- 27. 如何創建一個分層的Joomla!菜單結構
- 28. D3:從CSV創建分層結構時如何添加計數
- 29. Drupal 7:如何創建分層節點結構
- 30. 如何分析Rake任務?
紅寶石需求不起作用,因爲它不會改變工作目錄。我一直沒能找到任何支持這種遞歸行爲的ruby原語。 – 2015-05-01 22:37:49