gradle distZip重命名存档

sum*_*n j 11 gradle build.gradle

我想对distZip任务创建的可分发zip存档使用特定名称.我使用下面的代码

distZip {
        archiveName baseName+'-'+version+'-bin.zip'
}
Run Code Online (Sandbox Code Playgroud)

生成的存档包含'baseName +' - '+ version +' - bin'文件夹.


    jar -tvf baseName-version-bin.zip 
        0 Mon Feb 24 15:48:02 CST 2014   baseName-version-bin/
     81462 Mon Feb 24 15:48:02 CST 2014  baseName-version-bin/baseName-version.jar
         0 Mon Feb 24 15:48:02 CST 2014  baseName-version-bin/lib/
    6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/a.jar
    6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/b.jar

所有的罐子都放在这个目录里.我只想重命名存档而不打扰其中的内容.我期待zip中没有'-bin'后缀的'baseName-version'目录.

如何单独更改存档名称?

top*_*opr 7

你可以这样做:

distZip {
    archiveName "$baseName-$version-bin.zip"
}

distributions {
    main {
        contents {
            eachFile {
                it.path = it.path.replace('-bin', '')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

另一件事是,添加这样的后缀像-bin更好的方式(并与maven兼容)将使用分类器属性.我正在使用java-library-distribution插件,但我相信它的配置插件应该是一样的(考虑到你也使用maven插件).那就足够了你喜欢:

distZip {
    classifier = 'bin'
}

distributions {
    main {
        baseName = archivesBaseName
        contents {
            eachFile {
                it.path = it.path.replace("-$distZip.classifier", '')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


sum*_*n j 6

doLast我通过配置重命名构建的存档来使其工作。

distZip {
    doLast {
        file("$destinationDir/$archiveName").renameTo("$destinationDir/$baseName-$version-bin.zip")
    }
}
Run Code Online (Sandbox Code Playgroud)