나는 아래에 단순화 한 레이크 작업을 가지고 있습니다. Windows에서 Ruby 1.9를 사용하고 있습니다.왜 레이크가 여러 작업을 연속적으로 호출 할 수 없습니까?
아마도 아래의 "list_all_levels"라는 Rake 작업을 호출 한 결과를 추측하고 싶습니까? 다음과 같아야합니다 :
"Hello level 1"
"Hello level 2"
"Hello level 3"
그러나 나에게 알려지지 않은 이유 때문에 "Hello level 1"만 인쇄 한 다음 중지합니다.
즉, 항상 첫 번째 작업 만 호출합니다. arg "42"를 전달하기 위해 첫 번째 행을 변경하면 "Hello level 42"가 인쇄 된 다음 중지됩니다.
이유는 무엇입니까 아니요은 3 번 작업을 호출하고 모든 3 줄을 인쇄합니까? 그리고 예상대로 작동하도록하는 방법이 있습니까?
task :list_all_levels => [] do
Rake::Task[:list].invoke 1
Rake::Task[:list].invoke 2
Rake::Task[:list].invoke 3
end
task :list, [:level] => [] do |t, args|
puts "Hello level #{args.level}"
end
정말 감사합니다. – kizzx2
@PandaWood를 '실행'하도록 변경하는 경우 조심하십시오. = [rake execute vs invoke] (http://chrisroos.co.uk/blog/2007-12-06-ruby-rake) -invoke-vs-execute) – Ron
이것은 매우 반 직관적 인 것처럼 보입니다. 그들이 왜 이렇게 만들었는지에 대한 아이디어가 있습니까? – marcovtwout