背景介绍
学习一下Rake的使用.
简介
Rake 即 Ruby Make,一个用ruby开发的代码构建工具.
主要是用来解决两个问题:
- 脚本的管理. 我们经常会为一些大型项目编写许多脚本,甚至一个功能需要多个脚本,如果每次都一个一个执行会比较麻烦.使用Rake可以将这些脚本以任务的形式定义,管理起来会更加的轻松.
- 脚本或者任务之间的依赖关系.假设多个脚本之间有一定的依赖关系,那么用Ruby可以管理他们之间的执行顺序.
安装
brew install rake
运行
rake 任务名
即可.
rake 文件的编写
rake任务的定义是有一套自己的语法的.
编写任务
定义一个普通的任务:
1 | desc "One line task description" |
desc: 定义了任务的描述,在使用rake -T
或者rake --tasks
可以列出所有的任务包含其描述.
task: 定义了任务的名字以及任务的具体执行逻辑,还可以选择参数.
任务之间的依赖
1 | desc "Example of a task with prerequisites" |
当执行任务task_two
时会检查task_one
是否已经执行.
设置默认任务
默认任务及执行rake
时调用的任务.
1 | task :default => ['my_task'] |
命名空间
当你的任务非常多,不想他们之间互相影响的时候.可以定义命名空间
1 | namespace 'name1' do |
只是执行的时候要使用rake name1:task1
来执行.
一个Demo
假设:
我们的项目在本地开发,部署方式使用jar包部署.那么我们每次想要上线需要几步呢?
- 本地编译
- 运行测试一下
- 将本地jar包发送到服务器上并执行,
- 上线成功了.
这四个脚本,每次去手动执行一遍是在是有点麻烦.当然我们可以把他们写在一个脚本里面.但是如果我们有时候很急,不想执行测试呢?重新写一个包含1,3,4
的脚本吗?
这时候可以使用rake来定义任务进行管理.定义的如下:
1 | desc "compile" |
我在rakefile中定义了三个基础的任务,分别为编译
,测试
,copy
.可以分别使用rake compile
,rake test
,rake copy
来执行.
然后定义了两个集合起来的任务,分别为deploy
和deploy_without_test
.可以分别使用rake deploy
和rake deploy_without_test
来执行.
这样就会非常的方便,当我们本地开发时,可以独立的调用三个任务来开发,当我们需要上线时,也可以根据不同的需求来进行执行任务.方便快捷.
执行效果如下:
当然,里面的打印语句需要替换为真正的执行脚本的语句,这里就不再贴出来了.
ChangeLog
2019-04-02 完成以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。
更多学习笔记见个人博客——>呼延十