사용자 도구

사이트 도구


gradle:buildlifecycle

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
gradle:buildlifecycle [2012/10/08 17:55]
kwon37xi [프로젝트 평가]
gradle:buildlifecycle [2012/10/08 18:02]
kwon37xi [태스크 실행]
줄 165: 줄 165:
  
 ==== 태스크 실행 그래프가 정해진 뒤에 ==== ==== 태스크 실행 그래프가 정해진 뒤에 ====
 +  * 실행할 태스크에 ''release''가 있는지 여부에 따라 버전 변경하는 ''build.gradle'' <code groovy>
 +task distribution << {
 +    println "We build the zip with version=$version"
 +}
  
 +task release(dependsOn: 'distribution') << {
 +    println 'We release now'
 +}
 +
 +gradle.taskGraph.whenReady {taskGraph ->
 +    if (taskGraph.hasTask(release)) {
 +        version = '1.0'
 +    } else {
 +        version = '1.0-SNAPSHOT'
 +    }
 +}
 +</code> 
 +
 +''release'' 태스크의 실행여부에 따라 버전값이 달라진다. [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/execution/TaskExecutionGraph.html|TaskExecutionGraph]]에 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/execution/TaskExecutionGraphListener.html|TaskExecutionGraphListener]]를 추가해도 된다.
 +
 +==== 태스크 실행 ====
 +어떤 태스크이든 실행 직전과 직후에 알림을 받을 수 있다.
 +
 +  * 태스크 실행과 종료를 로그로 남기는 ''build.gradle'' <code groovy>
 +task ok
 +
 +task broken(dependsOn: ok) << {
 +    throw new RuntimeException('broken')
 +}
 +
 +gradle.taskGraph.beforeTask { Task task ->
 +    println "executing $task ..."
 +}
 +
 +gradle.taskGraph.afterTask { Task task, TaskState state ->
 +    if (state.failure) {
 +        println "FAILED"
 +    }
 +    else {
 +        println "done"
 +    }
 +}
 +</code>
 +  * 실행하면 <code>
 +> gradle -q broken
 +executing task ':ok' ...
 +done
 +executing task ':broken' ...
 +FAILED
 +</code>
 +
 +[[http://www.gradle.org/docs/current/javadoc/org/gradle/api/execution/TaskExecutionGraph.html|TaskExecutionGraph]]에 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/execution/TaskExecutionListener.html|TaskExecutionListener]]를 추가해도 된다.
  
gradle/buildlifecycle.txt · 마지막으로 수정됨: 2014/08/29 14:40 저자 kwon37xi