Грабли CLEAN / CLOBBER не удаляются
Вопрос
Я думаю, что схожу с ума. Кто-нибудь может помочь?
У меня есть папка c: \ project \ bin Я запускаю следующее, чтобы выполнить мой скрипт rake
cd C:\project
rake
В моем сценарии граблей есть:
require 'rake/clean'
CLOBBER.include('bin')
task :default => [:compile]
task :compile do
# do nothing
end
Он не удаляет " bin " папка или содержимое "bin" папка. Я использую Ruby в Windows (1.86 или около того) и установил rake, используя gem install rake. Р>
Я что-то пропустил. Я пробовал - трассировка и т. Д., Но не получил обратной связи.
Решение
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
Другие советы
CLEAN и CLOBBER не являются неявными задачами - вы должны объявить зависимость или вызвать их
Чтобы упростить это, попробуйте
task :default => [:compile, :clobber]
вместо
task :default => ["compile"]
А затем в командной строке вы можете просто запустить
rake
Помните, в Ruby предпочтительнее использовать символы вместо строковых литералов