2009-09-17 3 views
3

Je pense que je deviens fou. Quelqu'un peut-il aider?Rake CLEAN/CLOBBER pas de suppression

je le dossier c: \ projet \ bin j'exécutez la commande suivante pour exécuter mon script râteau

cd C:\project 
rake 

Dans mon script rake je:

require 'rake/clean' 
CLOBBER.include('bin') 

task :default => [:compile] 

task :compile do 
    # do nothing 
end 

Il ne supprime pas le dossier "bin" ni le contenu du dossier "bin". Je cours Ruby dans Windows (1.86 ou ainsi) et ai installé rake en utilisant, gem install rake.

Ai-je manqué quelque chose? J'ai essayé --trace etc. mais n'obtiens aucun commentaire.

Répondre

4

TL; DR: $ rake clobber


Comme la réponse dit plus haut, ils ne sont pas implicilty invoquées. Voici un exemple, comme vous l'avez demandé.

~/deleteme$ cd project 
total 8 
[email protected] 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 
[email protected] 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 
[email protected] 1 josh staff 110 Jun 27 06:04 Rakefile 
2

CLEAN, ni CLOBBER ne sont pas des tâches implicites - vous devez déclarer la dépendance ou les invoquer

+0

Pourriez-vous donner un exemple, comme partout où je lis ne dit pas que c'est le cas. Martin Fowler par exemple, http://martinfowler.com/articles/rake.html#BuiltInCleaning, ou cet article http://www.stuartellis.eu/articles/rake/. – Bealer

0

Pour un moyen plus facile de le faire, essayez

task :default => [:compile, :clobber] 

au lieu de

task :default => ["compile"] 

Et puis dans votre commande en ligne, vous pouvez simplement lancer

rake 

Rappelez-vous, dans Ruby, il est préférable d'utiliser Sym bols au lieu de littéraux de chaîne

Questions connexes