- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ruby中的Rake任务详述
Rake简介
Rake和Make及Ant
Rake的意思是Ruby Make,一个用ruby开发的代码构建工具。Rake的英文意思是耙子,一种很朴实的劳动工具。真的是很贴切,Rake正是一个功能强大、勤勤恳恳的劳动工具。
但是,为什么Ruby需要Rake?
Ruby代码不需要编译,为什么需要Rake?其实,与其说Rake是一个代码构建工具,不如说Rake是一个任务管理工具,通过Rake我们可以得到两个好处:
以任务的方式创建和运行脚本
当然,你可以用脚本来创建每一个你希望自动运行的任务。但是,对于大型的应用来说,你几乎总是需要为数据库迁移(比如Rails中db:migrate任务)、清空缓存、或者代码维护等等编写脚本。对于每一项任务,你可能都需要写若干脚本,这会让你的管理变得复杂。那么,把它们用任务的方式整理到一起,会让管理变得轻松很多。
追踪和管理任务之间的依赖
Rake还提供了轻松管理任务之间依赖的方式。比如,“migrate”任务和“schema:dump”任务都依赖于 “connect_to_database”任务,那么在“migrate”任务调用之前,“connect_to_database”任务都会被执行。
在哪里可以获得Rake?
Rake的主页是在/,在这里你可以获得Rake的简单介绍,API以及一些有用文档的链接。可以在/frs/?group_id=50获得最新版的Rake,在作者写作时,最新版本是0.7.3。
Rake脚本编写
一个简单脚本
Rake的脚本相当简单,下面用一个例子进行说明。假设你是一个勤劳的家庭型程序员,在周末你打算为你的家人做一些贡献。所以你为自己制定了三个任务:买菜、做饭和洗衣服。打开你的文本编辑器,创建一个名叫rakefile的文件(Rake会在当前路径下寻找名叫Rakefile、rakefile、RakeFile.rb和rakefile.rb的rake文件),并输入如下内容:
desc 任务1 -- 买菜
task :purchaseVegetables do
puts 到沃尔玛去买菜。
end
desc 任务2 -- 做饭
task :cook do
puts 做一顿香喷喷的饭菜。
end
desc 任务3 -- 洗衣服
task :laundry do
puts 把所有衣服扔进洗衣机。
end
打开命令行工具,进入这个文件所在目录,然后运行下面的命令,大致应该类似如下结果:
D:\work\ruby_works\ruby_bookrake purchaseVegetables
(in D:/work/ruby_works/ruby_book)
到沃尔玛去买菜。
D:\work\ruby_works\ruby_bookrake cook
(in D:/work/ruby_works/ruby_book)
做一顿香喷喷的饭菜。
D:\work\ruby_works\ruby_bookrake laundry
(in D:/work/ruby_works/ruby_book)
把所有衣服扔进洗衣机。
分析
很简单,也很易读,对吧。这个文件一共定义了3个任务,desc是Rake定义的方法,表示对下面定义任务的描述。这个描述会在使用Rake --tasks(或者Rake -T,为懒人准备的快捷方式)命令时输出在屏幕上。
D:\work\ruby_works\ruby_bookrake --tasks
(in D:/work/ruby_works/ruby_book)
rake cook # 任务2 -- 做饭
rake laundry # 任务3 -- 洗衣服
rake purchaseVegetables # 任务1 -- 买菜
下面的语句定义了purchaseVegetables这个任务,task是Rake最重要的方法。它的方法定义是:task(args, block)。任务体是一个block,本例中只是简单输出你所要做的工作。需要注意的是代码
puts 到沃尔玛去买菜。
完全是一个普通的Ruby语句,puts是Ruby中进行输出的一般性方法,可以看出,Rake任务可以完全使用Ruby的能力,这使得它非常强大。
加入依赖关系
很显然,在我们定义的任务中,做饭是依赖于买菜的(我相信大多数程序员在周末的冰箱里除了可乐没有别的)。那么,我们需要在我们的任务定义中加入这个依赖关系,修改后的文件如下:
desc 任务1 -- 买菜
task :purchaseVegetables do
puts 到沃尔玛去买菜。
end
desc 任务2 -- 做饭
task :cook = :purchaseVegetab
您可能关注的文档
最近下载
- 7.1《短歌行》课件(共56张PPT)2024-2025学年统编版高中语文必修上册.pptx VIP
- 《GB/T 18281.7-2024医疗保健产品灭菌 生物指示物 第7部分:选择、使用和结果判断指南》.pdf
- 微科安装使用说明书调皮%时间.pdf VIP
- HG_T 5171-2017 粒状中微量元素肥料.docx
- 检验检测机构管理评审参考.doc VIP
- 自由体位分娩理论考核试题及答案.docx VIP
- PyQt5入门教程实用知识库分享20240314102955.pdf VIP
- JJF 2182-2024 农灌机井取水量计量监测方法.pdf VIP
- 企业一站式数据开发与治理平台解决方案(35页).pptx VIP
- 新能源汽车检测与维修技术专业人才培养方案.docx VIP
文档评论(0)