不足しているコマンド ライン スイッチはありますか?
現時点では、私はこれをしなければなりません:
#task :install => :build do
task :install do
end
「タスク名_no_前提条件」の形式でタスクを追加するだけで、この問題を解決したようです。たとえば、以下のコードで "rake install_no_prerequisites" を実行しても、"build" は実行されません。
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 タスクでシーケンスを実行できます。
レーキビルド
レーキインストール
レーキゴー
私は実際にこれをたくさんします。必要なときに個々のステップを実行し、必要に応じてより大きな一連のステップを実行できるので、非常に便利です。