Rake

2 views
Skip to first unread message

volve...@gmail.com

unread,
Nov 9, 2006, 6:45:03 AM11/9/06
to 闲敲棋子落灯花
Rake(1)
就好像C/C++ 的Makefile , java的ant ,
ruby 也有个项目编译管理工具 就是Rake。
让人激动的是, Rakefile的格式是完全遵循
ruby 语法的 。 当初你用GCC的时候,是否曾
为了Makefile的语法而发愁呢 , 用Ant 的时候
是否曾为了编辑xml文档而觉得厌烦呢
哈哈 , Rake 改变了这一切 。
Rake 不仅仅有完备的项目管理功能 ,而且
因为Rakefile本身就是ruby 程序 , ruby 语言的
强大功能 也成了Rake 的优势 , 呵呵
是不是觉得很吸引人呢 。


Rake(2)
Rake 的 usage 很简单
用 rake -h 就可以看到
是 rake [-f rakefile] {options} targets...

-f 是用来制定Rakefile 的名字 , 就好像
make 使用 makefile 一样 ,如果没有使用这个
参数 , rake 会自动搜索 目录下 rakefile或者
Rakefile , 然后开始执行 。
rake 的 options 看起来意义不是太大 , 一般
不会被用到吧
targets 就是执行目标了
好像 make clean , clean 是目标
rake clean 就跟 make clean 意思一样。
用户也可以自己在rakefile中定制自己的target
然后 用 rake 来执行
看起来一切都很简单吧 :)


Rake(3)
Rakefile 的格式
看起来 好像 Rakefile的格式也是在简单
简单的都没什么可说
因为Rakefile 自己也是ruby 程序
所有 所有对ruby来说是合法的代码
在Rakefile 中也同样合法 。
有些使用到 Rake库 情况
可以参考 Rake的官方文档
http://rake.rubyforge.org


Rake(4)
来看一个实例吧

namespace :log do
desc "Truncates all *.log files in log/ to zero bytes"
task :clear do
FileList["log/*.log"].each do |log_file|
f = File.open(log_file, "w")
f.close
end
end
end


这个是 rails 提供的 Rakefile的一部分 什么功能呢?
呵呵 你一定已经看出来了吧
就是把log目录下的log文件的内容全部清除


一切就是这么简单

Reply all
Reply to author
Forward
0 new messages