Rastrillo LIMPIAR / CLOBBER no elimina
Pregunta
Creo que me estoy volviendo loco. ¿Alguien puede ayudar?
Tengo la carpeta c: \ project \ bin Ejecuto lo siguiente para ejecutar mi script de rastrillo
cd C:\project
rake
En mi script de rastrillo tengo:
require 'rake/clean'
CLOBBER.include('bin')
task :default => [:compile]
task :compile do
# do nothing
end
No elimina el " bin " carpeta ni el contenido del " bin " carpeta. Estoy ejecutando Ruby en Windows (1.86 más o menos) e instalé rake usando, gem install rake.
¿Me he perdido algo? He intentado - rastrear, etc., pero no recibo comentarios.
Solución
TL; DR: $ rake clobber
Como dice la respuesta anterior, no se invocan implicilmente. Aquí hay un ejemplo, como lo solicitó.
~/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
Otros consejos
CLEAN ni CLOBBER no son tareas implícitas: debe declarar dependencia o invocarlas
Para una manera más fácil de hacerlo, intente
task :default => [:compile, :clobber]
en lugar de
task :default => ["compile"]
Y luego, en su línea de comandos, puede ejecutar
rake
Recuerde, en Ruby se prefiere usar símbolos en lugar de literales de cadena