Rake LIMPO / CLOBBER não excluindo
Pergunta
Eu acho que estou ficando louco. Alguém pode ajudar?
Eu tenho a pasta c: \ project \ bin Eu executar o seguinte para executar o meu script de rake
cd C:\project
rake
No meu script ancinho eu tenho:
require 'rake/clean'
CLOBBER.include('bin')
task :default => [:compile]
task :compile do
# do nothing
end
Ele não exclui a pasta "bin" nem o conteúdo da pasta "bin". Estou executando o Ruby no Windows (1,86 ou mais) e instalado ancinho usando, gem install rake.
eu perdi alguma coisa. Eu tentei --trace etc .. mas não obter feedback.
Solução
TL; DR: $ rake clobber
Como a resposta acima disse, eles não são implicilty invocado. Aqui está um exemplo, como você pediu.
~/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
Outras dicas
Limpo nem CLOBBER não são tarefas implícitas - você deve declarar dependência ou invocá-los
Para uma maneira mais fácil de fazê-lo, tente
task :default => [:compile, :clobber]
em vez de
task :default => ["compile"]
E, em seguida, em sua linha de comando você pode simplesmente executar
rake
Lembre-se, em Ruby é preferível usar símbolos em vez de literais de string