我最近开始使用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. 使用SCons创建分层构建
- 2. Linq构建分层列表
- 3. 使用ColdFusion创建分层xml结构
- 4. 构建动态分层结构
- 5. 如何用架构层创建报表?
- 6. 如何使用uclibc做静态构建
- 7. 使用LingPipe做分层情绪分析
- 8. 分层架构
- 9. 使用Rake或Gem构建脚本?
- 10. 如何使用Rake for Rails项目创建目录结构
- 11. neo4j Cypher分层树构建响应JSON
- 12. 与SCons的真正分层构建?
- 13. Drupal 7:如何创建分层节点结构
- 14. 如何分析Rake任务?
- 15. 如何创建此层次结构
- 16. 如何建模表层次结构
- 17. 如何构建多层测试对象?
- 18. 如何构建用于层次结构目的的Json对象
- 19. 如何使用PHP构建n层web架构?
- 20. SCons:使用分层构建分离调试/发布版本dirs
- 21. 如何构建和构建一个图层?
- 22. 使用Linq构建树层次结构
- 23. C#分层结构分类结构
- 24. 构建层次C#
- 25. 如何构建分析树?
- 26. 如何从csv创建分层字典?
- 27. scons阶层构建:传播构建器
- 28. react js - 如何做服务层调用
- 29. TeamCity:如何将dotcover附加到Rake构建配置?
- 30. Rake db:迁移错误“不知道如何构建任务”
红宝石需求不起作用,因为它不会改变工作目录。我一直没能找到任何支持这种递归行为的ruby原语。 – 2015-05-01 22:37:49