Задача Gradle Расширить задачу Defalut с помощью аргументов - PullRequest
0 голосов
/ 15 января 2020

У меня есть ряд задач tar, которые нужно выполнить в моем проекте. Большинство из них похожи, только один или два аргумента отличаются.

просто так:

+rootDir
+----a.txt
+----a.png
+----b.txt
\----b.png
===================================
after tasks execute:

+rootDir
+----a.tar.gz(include a.txt&a.png)
\----b.tar.gz(include b.txt&b.png)


//may hava some mistake,I don't remeber it clearly
task packA(type:Tar){
    archiveName = "a.tar"
    destinationDir = file("${buildDir}/")
    from "${rootDir}/a.png"
    from "${rootDir}/a.txt"
    comprassion = Comprassion.GZIP
}
task packB(type:Tar){
    archiveName = "b.tar"
    destinationDir = file("${buildDir}/")
    from "${rootDir}/b.png"
    from "${rootDir}/b.txt"
    comprassion = Comprassion.GZIP
}

Могу ли я написать класс задач расширения Tar или есть другой способ, чтобы я мог просто сделать это так? я использую gradle4.10.2

//i tried this but it not work,said there's no tar function in project
class CustomPack extend DefaultTask{
    @Input
    String arg

    @taskAction
    def customPack(){
        project.tar{
            archiveName = "${arg}.tar"
            destinationDir = file("${buildDir}/")
            from "${rootDir}/${arg}.png"
            from "${rootDir}/${arg}.txt"
            comprassion = Comprassion.GZIP
        }
    }
}
task packA(type:CustomPack ){
    arg = "a"   
}
task packB(type:CustomPack ){
    arg = "b"   
}
...