우리 프로젝트에서 ZIP 파일을 만들 수있는 Gradle 작업이 있습니다. 그것은 울부 짖는 소리 같아요.Gradle을 사용하여 여러 ZIP 파일을 동적으로 만드는 방법은 무엇입니까?
task createZipFile(type: Zip) {
destinationDir new File("$projectDir")
archiveName 'ABC.zip'
from('bin/libs') {
include '**/*.jar'
}
...
}
build.dependsOn(createZipFile)
동적으로 이름이 다른 여러 zip 파일을 만들어야합니다. 우리는 그것을 다음과 같이 시도했다.
['A', 'B', 'C', 'D'].each { def targetName ->
tasks.add(name: "zipIt$targetName", type: Zip) {
destinationDir = file("${targetName}.zip")
from('bin/libs') {
include '**/*.jar'
}
}
}
task zipAll(dependsOn: tasks.matching { Task task -> task.name.startsWith("zipIt")})
build.dependsOn(zipAll)
다음과 같은 오류가 발생합니다.
[{이름 = zipItA, 유형 = 클래스 org.gradle.api.tasks.bundling.Zip}, build_1bct5119tk0khpl3p142j9qck5 $ _run_closure6_closure18 47b8c9d
@ 인수 방법 추가()을 (를) 찾을 수 없습니다 Gradle을 사용하여이 문제를 어떻게 해결할 수 있습니까?
이 솔루션을 살펴 보는 것이 좋습니다. [copy-to-multiple-destinations-with-gradle-copy-task] (http://stackoverflow.com/a/13494584/108350) 귀하의 질문에 대한. _trick_는 작업에 매개 변수를 넣는 것으로 보인다. 나는 당신의 [A, B, C]리스트를 변수에 넣고 그것을 작업 본문 내에서 사용했습니다. 나는 당신이 아직도 그것을 원한다면 당신이 접근 방식을 작동하게 할 수 있다고 생각합니다. – will