728x90
반응형
질문 : Rake 작업 내에서 Rake 작업을 실행하는 방법은 무엇입니까?
:debug
또는 :release
수있는 $build_type
에 따라 두 가지 방법으로 프로젝트를 컴파일하는 Rakefile이 있습니다 (결과는 별도의 디렉토리에 있음).
task :build => [:some_other_tasks] do
end
다음과 같이 두 가지 구성으로 차례로 프로젝트를 컴파일하는 작업을 만들고 싶습니다.
task :build_all do
[ :debug, :release ].each do |t|
$build_type = t
# call task :build with all the tasks it depends on (?)
end
end
마치 메서드 인 것처럼 작업을 호출하는 방법이 있습니까? 아니면 비슷한 것을 어떻게 얻을 수 있습니까?
답변
만약 당신이 메소드처럼 행동할 업무가 필요하다면, 실제 메소드를 사용하는 것은 어떨까요?
task :build => [:some_other_tasks] do
build
end
task :build_all do
[:debug, :release].each { |t| build t }
end
def build(type = :debug)
# ...
end
만약 당신이 관용구를 고수하고 싶다면, 과거의 답변들을 종합한 당신의 가능성은 다음과 같다:
- 이것은 항상 작업을 실행하지만 종속성은 실행하지 않습니다.
Rake::Task["build"].execute
- 이것은 종속성을 실행하지만 아직 호출되지 않은 경우에만 작업을 실행합니다.
Rake::Task["build"].invoke
- 이것은 먼저 작업의 already_invoked 상태를 재설정하여 작업이 다시 실행될 수 있도록합니다.
Rake::Task["build"].reenable Rake::Task["build"].invoke
- 이미 호출 된 종속성은 다시 활성화하지 않는 한 자동으로 다시 실행되지 않습니다. Rake> = 10.3.2에서는 다음을 사용하여 다시 활성화 할 수도 있습니다.
Rake::Task["build"].all_prerequisite_tasks.each(&:reenable)
출처 : https://stackoverflow.com/questions/577944/how-to-run-rake-tasks-from-within-rake-tasks
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
REST API / 웹 서비스 보안을위한 모범 사례 (0) | 2021.12.04 |
---|---|
[iOS 7] @import vs #import (0) | 2021.12.03 |
Ruby : 특정 버전의 Ruby gem을 설치하는 방법 (0) | 2021.11.30 |
내 시스템에서 RVM (Ruby Version Manager)을 제거하는 방법 (0) | 2021.11.30 |
align-content와 align-items의 차이점 (0) | 2021.11.29 |