我想安装一个插件,但我恐怕会安装很多不必要的东西。我想看看耙子从安装说明中获取的任何文件,并删除不必要的东西。在您说“rake install”之后遵循了哪些步骤?
我相信这是Rake文件。但我不确定当rake查看rakefile时会发生什么情况 - 是执行整个rakefile还是只执行与此“安装”过程相关的rakefile的一部分?
我想安装一个插件,但我恐怕会安装很多不必要的东西。我想看看耙子从安装说明中获取的任何文件,并删除不必要的东西。在您说“rake install”之后遵循了哪些步骤?
我相信这是Rake文件。但我不确定当rake查看rakefile时会发生什么情况 - 是执行整个rakefile还是只执行与此“安装”过程相关的rakefile的一部分?
耙文件是任务的集合,当你调用耙参数(在这种情况下安装)就是这样得到真实执行任务。 (它类似于蚂蚁,如果你来从Java)
所以,不,耙不,当你调用“回扣+任务”,但只有选择的任务执行整个Rake文件。请注意,任务可能具有依赖关系(例如,“测试”任务可能取决于其他先前的任务,如创建一些文件夹和测试运行的内容)。
最后,其他用户指出的耙子用户指南是有用的,但我建议更愉快的阅读 - >Ruby on Rails Rake tutorial。
耙设置很像一个Rake文件由目标和依赖Make。这与普通的ruby脚本不同,Rake从您要求的目标开始,并在执行目标本身之前递归执行其依赖项。
所以,安装可能是这样的:
task :install => :stage do
# stuff to do
end
在这里,你的目标是install
任务,这取决于一些其他任务调用stage
。
要执行install
,Rake必须首先执行stage
(如果有的话)的依赖关系,然后执行stage
,然后最后执行install
。所以不,你不执行整个文件,只是足够安全地执行你要求的目标。
耙还支持文件目标:
file 'foo.html' => 'bar.xml' do |t|
# Build foo.html from bar.xml, however that is done
end
如果你知道做,这看起来很熟悉。 Rake首先检查bar.xml
是否依赖于任何内容,如果是,则执行该操作。然后,如果bar.xml
比foo.html
更新,则Rake执行此文件任务。如果foo.html
比较新,那么Rake会假定它已经建好并跳过它。
更多的Rake User Guide是开始,如果你想学做什么耙的好地方。
为什么插件会安装“不必要”的东西?
假设你的担心是有道理的,但是,你能不能安装插件,做你的调查,然后,如果不满意,恢复使用您的源代码控制系统预装的版本?如果你不使用源代码控制,这可能是完美的借口开始...
我打算写相同的任务,例如依赖但后来我想...在红宝石“编译”? :D – 2009-06-11 21:59:56
好点。嘿。 – tgamblin 2009-06-11 22:02:49