1

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

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

#task :install => :build do
task :install do
end
4

2 に答える 2

2

「タスク名_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
于 2010-09-22T12:13:51.720 に答える
1

タスクに依存関係を定義すると、常に最初に実行されます。ただし、次のように、タスクを個別に作成してから、別のタスクにまとめることができます。

task :build do
  ... 
end

task :install do
  ...
end

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

その後、ビルド タスクまたはインストール タスクを個別に呼び出すか、go タスクでシーケンスを実行できます。

レーキビルド
レーキインストール
レーキゴー

私は実際にこれをたくさんします。必要なときに個々のステップを実行し、必要に応じてより大きな一連のステップを実行できるので、非常に便利です。

于 2010-09-17T15:35:47.223 に答える