Вопрос

Я думаю, что схожу с ума. Кто-нибудь может помочь?

У меня есть папка 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 предпочтительнее использовать символы вместо строковых литералов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top