2014-10-18 2 views
1

내 gradled 빌드 스크립트에서 통합 및 수용 테스트를 실행하기 위해 별도의 작업을 생성했다고 가정 해 보겠습니다. 빌드 작업을 실행할 때 단위 테스트 (테스트 작업), 통합 테스트 (intergationTest 작업) 및 수락 테스트 (acceptanceTest 작업)를 순서대로 수행하기 전에 테스트 작업을 실행하고 싶습니다. 이게 가능하고 어떻게?Gradle을 특정 순서로 실행하는 방법은 무엇입니까?

답변

1

당신은 Gradle을 문서에 설명 된 "다음에 실행해야합니다"를 찾고 있습니다 - http://www.gradle.org/docs/current/userguide/more_about_tasks.html 여기

+0

나는 볼 수 있듯이 하나의 작업 만 다른 작업 후에 실행되도록 지정합니다. 빌드 작업 전에 세 가지 작업을 실행하고 싶습니다. 필자는이 명령으로 확실하게 그렇게 할 수는 있지만 테스트 작업을 실행하면 두 개만 더 실행되고 싶지는 않습니다. –

+0

시도해 보셨습니까? 'taskY.shouldRunAfter taskX1, taskX2'가 작동합니다. http://www.gradle.org/docs/current/javadoc/org/gradle/api/Task.html#shouldRunAfter (java.lang.Object ...) – Radim

+0

이 작업이 가능하다는 것을 알고 있지만이 작업을 수행하고 싶습니다. 빌드가 호출 될 때만 호핑됩니다. –

1

당신이 인공 종속성을 작성하지 않고 그것을 할 수있는 방법은 다음과 같습니다

https://caffeineinduced.wordpress.com/2015/01/25/run-a-list-of-gradle-tasks-in-specific-order/

TLDR을; 버전 :

//--- build aliases : define a synonym here if you want a shortcut to run multiple targets 

def buildAliases = [ 
    'all' : ['clean', 'assemble', 'runProvisioner', 'stopTomcat', 'installTomcat', 'deployToTomcat', 'startTomcat'], 
    'rebuild' : ['clean', 'assemble'] 
] 
def expandedTaskList = [] 

gradle.startParameter.taskNames.each { 
    expandedTaskList << (buildAliases[it] ? buildAliases[it] : it) 
} 

gradle.startParameter.taskNames = expandedTaskList.flatten() 

println "\n\n\texpanded task list: ${gradle.startParameter.taskNames }\n\n" 
0

이것은 내 프로젝트에서 수행 한 것입니다.

check.dependsOn integTest 
integTest.mustRunAfter test 
tasks.withType(Pmd) { 
    mustRunAfter integTest // Pointing to a task 
} 
tasks.withType(FindBugs) { 
    mustRunAfter tasks.withType(Pmd) // Pointing to a group of tasks under Pmd 
} 
tasks.withType(Checkstyle) { 
    mustRunAfter tasks.withType(FindBugs) 
} 

그룹별로 작업을 주문하는 데 도움이되었습니다.

관련 문제