Est-il possible d'exécuter une tâche de râteau sans courir les conditions préalables?

StackOverflow https://stackoverflow.com/questions/3733921

  •  03-10-2019
  •  | 
  •  

Question

Y at-il un commutateur de ligne de commande que je suis absent?

En ce moment je vais avoir à faire ceci:

#task :install => :build do
task :install do
end
Était-ce utile?

La solution

Je semble avoir résolu ce problème en ajoutant simplement des tâches supplémentaires dans le format « taskname_no_prerequisites ». Ainsi, par exemple dans le code ci-dessous exécution « râteau install_no_prerequisites » ne serait pas la cause « construire » à exécuter.

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

Autres conseils

si vous définissez une dépendance à l'égard d'une tâche, il sera toujours exécuté en premier. Cependant, vous pouvez créer vos tâches individuellement, puis les regrouper avec une autre tâche, comme ceci:

task :build do
  ... 
end

task :install do
  ...
end

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

et vous pouvez appeler la construction ou l'installation des tâches indépendamment ou exécuter la séquence avec la tâche de go.

rake build
rake install
rake go

Je le fais beaucoup, en fait. il est très pratique pour moi d'exécuter les étapes individuelles quand je veux, et ont la plus grande séquence d'étapes quand je les ai besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top