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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top