사용자 도구

사이트 도구


gradle:task

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
gradle:task [2014/01/16 16:06]
kwon37xi
gradle:task [2017/12/21 08:55]
kwon37xi [UP-TO-Date upToDate 조건]
줄 26: 줄 26:
  
 // tasks 에 추가 // tasks 에 추가
-tasks.add(name: 'hello'<< {+tasks.add(name: 'taskName', type: org.something.GradleTask, dependsOn: 'anotherTask') { 
 +    // task 설정
     println "hello"     println "hello"
 +}
 +
 +// with create
 +
 +tasks.create(name: 'taskName', type: org.something.GradleTask, dependsOn: 'anotherTask') {
 +   // task 설정
 } }
 </code> </code>
줄 224: 줄 231:
  
 ===== 태스크의 실행 순서 ===== ===== 태스크의 실행 순서 =====
-태스크에 ''dependsOn [a, b]'' 형태로는 실행 순서를 지정할 수 없다. dependsOn 은 의존 대상을 명시할 뿐 의존 대상의 실행순서는 명시하지 않는다. +  * 태스크에 ''dependsOn [a, b]'' 형태로는 실행 순서를 지정할 수 없다. dependsOn 은 의존 대상을 명시할 뿐 의존 대상의 실행순서는 명시하지 않는다. 
-이 때, 다음과 같은 방식으로 순서를 명확히 하는 것도 가능하다. +  * 기존방법 : 다음과 같은 방식으로 순서를 명확히 하는 것도 가능하다.<code groovy>
-<code groovy>+
 task somethingLastTask << { task somethingLastTask << {
     tasks.somethingFirstTask.execute()     tasks.somethingFirstTask.execute()
줄 234: 줄 240:
 } }
 </code> </code>
 +  * 새로운 방법(2015년 1월 현재 incubating) : <code groovy>
 +// 보통은 task1 -> task2 순서로 실행하지만 특정 상황에서는 이를 무시한다.
 +task2.shouldRunAfter task1
  
 +// 무조건 task1 -> task2 순서를 지킨다.
 +task2.mustRunAfter task1
 +</code>
 ===== tasks ===== ===== tasks =====
   * ''tasks''는 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskContainer.html|TaksContainer]]의 인스턴스이며 이는 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskCollection.html|TaskCollection]] 인터페이스를 상속한다.   * ''tasks''는 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskContainer.html|TaksContainer]]의 인스턴스이며 이는 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskCollection.html|TaskCollection]] 인터페이스를 상속한다.
줄 242: 줄 254:
   * [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskOutputs.html#upToDateWhen%28org.gradle.api.specs.Spec%29|TaskOutputs.upToDateWhen]]을 통해 upToDate 검사 조건을 변경할 수 있다.   * [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/tasks/TaskOutputs.html#upToDateWhen%28org.gradle.api.specs.Spec%29|TaskOutputs.upToDateWhen]]을 통해 upToDate 검사 조건을 변경할 수 있다.
   * 태스크를 무조건 실행하게 만들고자 한다면 Up to date 검사를 안하게 만들면 된다.<code groovy>   * 태스크를 무조건 실행하게 만들고자 한다면 Up to date 검사를 안하게 만들면 된다.<code groovy>
-// 태스크 선언부에서.+ 
-outputs.upToDateWhen { false }+// 태스크 선언부에서 아래와 같은 형태를 띄게 된다
 + 
 +task someTask { 
 +  outputs.upToDateWhen { false 
 +   
 +  doLast { 
 +     ...  
 +  } 
 +}
 </code> </code>
 +
 +===== --rerun-tasks =====
 +  * ''--rerun-tasks'' 옵션을 주면 up-to-date 상태와 무관하게 무조건 태스크를 실행한다.
  
gradle/task.txt · 마지막으로 수정됨: 2018/05/31 13:45 저자 kwon37xi