هل هناك طريقة لتشغيل مهمة أشعل النار دون تشغيل المتطلبات المسبقة؟

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

  •  03-10-2019
  •  | 
  •  

سؤال

هل هناك مفتاح سطر الأوامر الذي أفتقده؟

في الوقت الحالي ، يتعين علي القيام بذلك:

#task :install => :build do
task :install do
end
هل كانت مفيدة؟

المحلول

يبدو أنني قمت بحل هذه المشكلة ببساطة عن طريق إضافة مهام إضافية بتنسيق "TaskName_NO_PRERENTESES". لذلك على سبيل المثال في الكود أدناه ، لن يتسبب تنفيذ "Rake Install_NO_PRERENTERESES" في تنفيذ "الإنشاء".

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

نصائح أخرى

إذا حددت الاعتماد على المهمة ، فسيتم تشغيله دائمًا أولاً. ومع ذلك ، يمكنك إنشاء مهامك بشكل فردي ثم تجميعها مع مهمة أخرى ، مثل هذه:

task :build do
  ... 
end

task :install do
  ...
end

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

وبعد ذلك ، يمكنك استدعاء المهام أو تثبيتها بشكل مستقل ، أو تشغيل التسلسل مع مهمة GO.

rake build
rake install
rake go

أفعل هذا كثيرًا ، في الواقع. يجعل الأمر مناسبًا جدًا بالنسبة لي لتشغيل خطوات فردية عندما أرغب في ذلك ، والحصول على تسلسل أكبر من الخطوات عندما أحتاج إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top