学习一下Rake的使用.
Rake 即 Ruby Make,一个用ruby开发的代码构建工具.
主要是用来解决两个问题:
brew install rake
rake 任务名
即可.
rake任务的定义是有一套自己的语法的.
定义一个普通的任务:
desc "One line task description"
task :name_of_task do
#your code goes here
sh 'echo haha'
end
desc: 定义了任务的描述,在使用rake -T
或者rake --tasks
可以列出所有的任务包含其描述.
task: 定义了任务的名字以及任务的具体执行逻辑,还可以选择参数.
desc "Example of a task with prerequisites"
task :task_two => ["task_one"] do
#Your code goes here
end
当执行任务task_two
时会检查task_one
是否已经执行.
默认任务及执行rake
时调用的任务.
task :default => ['my_task']
当你的任务非常多,不想他们之间互相影响的时候.可以定义命名空间
namespace 'name1' do
# tasks...
end
namespace 'name2' do
# tasks...
end
只是执行的时候要使用rake name1:task1
来执行.
假设:
我们的项目在本地开发,部署方式使用jar包部署.那么我们每次想要上线需要几步呢?
这四个脚本,每次去手动执行一遍是在是有点麻烦.当然我们可以把他们写在一个脚本里面.但是如果我们有时候很急,不想执行测试呢?重新写一个包含1,3,4
的脚本吗?
这时候可以使用rake来定义任务进行管理.定义的如下:
desc "compile"
task :compile do
puts "执行了编译"
end
desc "copy the jar to prod"
task :copy do
puts "将本地jar包copy到服务器上了,并且执行了"
end
desc "run unit test"
task :test do
puts "执行了test"
end
desc "compile and test and copy"
task :deploy => [:compile,:test,:copy] do
puts "上线了"
end
desc "compile and copy, without test"
task :deploy => [:compile,:copy] do
puts "上线了,没有进行测试,注意点哦"
end
我在rakefile中定义了三个基础的任务,分别为编译
,测试
,copy
.可以分别使用rake compile
,rake test
,rake copy
来执行.
然后定义了两个集合起来的任务,分别为deploy
和deploy_without_test
.可以分别使用rake deploy
和rake deploy_without_test
来执行.
这样就会非常的方便,当我们本地开发时,可以独立的调用三个任务来开发,当我们需要上线时,也可以根据不同的需求来进行执行任务.方便快捷.
执行效果如下:
当然,里面的打印语句需要替换为真正的执行脚本的语句,这里就不再贴出来了.
2019-04-02 完成
以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。
联系邮箱:huyanshi2580@gmail.com
更多学习笔记见个人博客——>呼延十
var gitment = new Gitment({ id: 'Rake的使用', // 可选。默认为 location.href owner: 'hublanker', repo: 'blog', oauth: { client_id: '2297651c181f632a31db', client_secret: 'a62f60d8da404586acc965a2ba6a6da9f053703b', }, }) gitment.render('container')