2013-05-03 2 views
6

내가 작성한 일정량의 Gradle 작업에는 인라인 또는 출력이 필요하지 않습니다. 따라서 이러한 작업은 전화 할 때 항상 UP-TO-DATE 상태가됩니다. 예 :Gradle에서 작업 실행 강제 수행

:gradle backupFile 
:backupFile UP-TO-DATE 

있는가하는 방법을 힘 실행하는 (뉴욕) 작업에 관계없이 어떤의 다음 출력 결과

task backupFile(type: Copy) << { 
    //Both parameters are read from the gradle.properties file 
    from file(adjusting_file.replaceAll("\"", "")) 
    into file(backupDestinationDirectory + "/main/") 

    println "[INFO] Main file backed up" 
} 

? 이 경우 은 작업 실행을 전환 할 수 있습니까 (예 : 빌드 스크립트에서 실행할 작업과 무시할 작업을 말함)?

<< 태그를 생략 할 수 없으므로 작업이 인 경우 항상으로 실행됩니다. 이는 원하는 바가 아닙니다.

입력 해 주셔서 감사드립니다.

+0

_i는 << 태그를 생략 할 수 없습니다 항상 execute_ =이 정확하지 않은>, 나는 당신이 말하는 내기를 당신에 println 문이 빌드에 매번 당신의 호출의 Gradle을 보여줍니다 때문 파일. 간단히 말해서,'>>'는 작업을위한 ** 액션 **을 정의하는 데 사용되므로 println은이 작업의 일부가되며 작업이 실행될 때만 표시됩니다. '>> '가 없으면 작업 구성 **을 정의하므로 ** println은 항상 매번 표시되지만 작업이 실행되었음을 의미하는 것은 아니며 _configured_ 만되었습니다. – Attila

답변

9

작업은 구성 단계에서 구성해야합니다. 그러나 실행 단계에서 실행되는 작업 작업 (<< { ... })으로 구성하고 있습니다. 너무 늦게 작업을 구성하기 때문에 Gradle은 수행 할 작업이 없다고 판단하고 UP-TO-DATE을 인쇄합니다.

다음은 올바른 해결책입니다. 다시 말하지만, << 대신에 doLast을 사용하는 것이 더 일반적인 구문으로 이어지고 실수로 추가/생략 될 가능성이 적기 때문에이 방법을 사용하는 것이 좋습니다.

task backupFile(type: Copy) { 
    from file(adjusting_file.replaceAll("\"", "")) 
    into file(backupDestinationDirectory + "/main/") 
    doLast { 
     println "[INFO] Main file backed up" 
    } 
}  
+0

작업을 항상 * 항상 * 실행하지 않습니까? –

+0

아니요. 조금 뒤로 물러서서 [Gradle User Guide] (http://gradle.org/docs/current/userguide/userguide_single.html)의 처음 몇 장을 공부하고 전체 Gradle 배포판에서 샘플을 시험해 보는 것이 좋습니다. . –

0

나는 여러 날 동안이 작업을 시도해 왔습니다. processResource 단계에서 많은 중간 중간 병을 만들어야합니다. 다음 단계는 processResource 단계에서 작성해야합니다. 그 작업을하는 것처럼

processResources.dependsOn(packageOxygenApplet) //doesn't work 

task packageOxygenApplet (type: Jar) { 

    println '** Generating JAR..: ' + rsuiteOxygenAppletJarName 
     from(sourceSets.main.output) { 
      include "org/worldbank/rsuite/oxygen/**" 
     } 
     baseName = rsuiteOxygenAppletJarName 

     manifest { 
      attributes("Build-By": oxygenUsername, 
       "Specification-Title": "Oxygen World Bank Plugin") 
     } 
     destinationDir = file("src/main/resources/WebContent/oxygen") 

}