Domanda

C'è una riga di comando che mi manca?

Al momento sto avendo a che fare questo:

#task :install => :build do
task :install do
end
È stato utile?

Soluzione

mi sembra di aver risolto questo problema con la semplice aggiunta di compiti supplementari in formato "taskname_no_prerequisites". Così, per esempio nel seguente codice in esecuzione "install_no_prerequisites rastrello" sarebbe non la causa "costruire" da eseguire.

desc "Build"
task :build do
  puts "BUILDING..."
end

desc "Install"
task :install => :build do
  puts "INSTALLING..."
end

Rake::Task::tasks.each do |task|
  desc "#{task} without prerequisites"
  task "#{task}_no_prerequisites".to_sym do
    task.invoke_without_prerequisites
  end
end

module Rake
  class Task
    def invoke_without_prerequisites
      execute
    end  
  end
end

Altri suggerimenti

se si definisce una dipendenza su un compito, sarà sempre essere eseguito prima. Tuttavia, è possibile creare le attività individualmente e poi aggregare insieme ad un altro compito, in questo modo:

task :build do
  ... 
end

task :install do
  ...
end

task :go => [:build, :install]

e quindi è possibile chiamare il generare o installare compiti in modo indipendente, o di eseguire la sequenza con il compito go.

rake build
rake install
rake go

faccio questo molto, in realtà. lo rende molto comodo per me per eseguire singole fasi quando voglio, e hanno la più grande sequenza di passi quando ho bisogno di loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top