我最近开始使用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