前提条件を実行せずにレーキタスクを実行する方法はありますか?

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

  •  03-10-2019
  •  | 
  •  

質問

不足しているコマンドラインスイッチはありますか?

現時点で私はこれをしなければなりません:

#task :install => :build do
task :install do
end
役に立ちましたか?

解決

「taskname_no_prerequisites」という形式に追加のタスクを追加するだけで、この問題を解決したようです。したがって、たとえば、「rake install_no_prerequisites」を実行する以下のコードでは、「ビルド」が実行されません。

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