Rake CLEAN / CLOBBER non cancellato
Domanda
Penso che sto impazzendo. Qualcuno può aiutare?
Ho la cartella c: \ project \ bin Eseguo quanto segue per eseguire il mio script rake
cd C:\project
rake
Nel mio script rake ho:
require 'rake/clean'
CLOBBER.include('bin')
task :default => [:compile]
task :compile do
# do nothing
end
Non elimina il " bin " cartella né i contenuti del "bin" cartella. Sto eseguendo Ruby in Windows (1,86 o giù di lì) e ho installato il rake usando, gem install rake.
Ho perso qualcosa. Ho provato --trace ecc. Ma non ho ricevuto feedback.
Soluzione
TL; DR: $ rake clobber
Come detto sopra, non sono invocate implicitamente. Ecco un esempio, come hai chiesto.
~/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
Altri suggerimenti
CLEAN e CLOBBER non sono attività implicite: è necessario dichiarare la dipendenza o invocarle
Per un modo più semplice per farlo, prova
task :default => [:compile, :clobber]
anziché
task :default => ["compile"]
E poi nella tua riga di comando puoi semplicemente eseguire
rake
Ricorda, in Ruby è preferibile usare i Simboli invece dei letterali String