Rake CLEAN / CLOBBER不删除

时间:2009-09-17 17:54:48

标签: ruby rake

我想我疯了。有人可以帮忙吗?

我有文件夹c:\ project \ bin 我运行以下命令来执行我的rake脚本

cd C:\project
rake

在我的rake脚本中,我有:

require 'rake/clean'
CLOBBER.include('bin')

task :default => [:compile]

task :compile do
    # do nothing
end

它不会删除“bin”文件夹,也不会删除“bin”文件夹的内容。我在Windows(1.86左右)中运行Ruby并使用gem install rake安装rake。

我错过了什么。我试过 - 追踪等......但没有得到反馈。

3 个答案:

答案 0 :(得分:4)

TL; DR:$ rake clobber


正如上面的答案所说的那样,它们并非被暗示引用。以下是您要求的示例。

~/deleteme$ cd project
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile


~/deleteme/project$ cat Rakefile
require 'rake/clean'
CLOBBER.include('bin')

task :default => ["compile"]

task :compile do
  mkdir 'bin'
end


~/deleteme/project$ rake
(in /Users/josh/deleteme/project)
mkdir bin


~/deleteme/project$ ls -l
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile
drwxr-xr-x  2 josh  staff   68 Jun 27 06:05 bin


~/deleteme/project$ rake -T
(in /Users/josh/deleteme/project)
rake clean    # Remove any temporary products.
rake clobber  # Remove any generated file.


~/deleteme/project$ rake clobber
(in /Users/josh/deleteme/project)
rm -r bin


~/deleteme/project$ ls -l
total 8
-rw-r--r--@ 1 josh  staff  110 Jun 27 06:04 Rakefile

答案 1 :(得分:2)

CLEAN和CLOBBER不是隐式任务 - 您必须声明依赖或调用它们

答案 2 :(得分:0)

要获得更简单的方法,请尝试

task :default => [:compile, :clobber]

而不是

task :default => ["compile"]

然后在命令行中运行

rake

请记住,在Ruby中,最好使用符号而不是字符串文字