前提条件を実行せずにレーキタスクを実行する方法はありますか?
質問
不足しているコマンドラインスイッチはありますか?
現時点で私はこれをしなければなりません:
#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
実際、私はこれをたくさんします。私が望むときに個々のステップを実行し、必要なときに一連のステップを持っていることが非常に便利です。
所属していません StackOverflow