我的项目的rootDir下有一个目录A。目录A具有子目录B,C,D,E等。
我只想创建B文件,而忽略其他文件。我写了一个gradle任务来压缩目录B。
task ZipOnlyB(type: Zip){
archiveName = "ArchiveOfB.zip"
destinationDir = file ("${rootDir}/toSendToArtifactory")
from "${rootDir}/A/B"
}
上面的代码可以正常工作并创建一个名为 ArchiveOfB.zip 的存档。但是此文件库不包含目录B。文件库仅包含目录B的内容。
zip文件的预期内容: A / B /目录目录B
zip文件的实际内容: A /目录目录B
我如何才能获得预期的结果。在这方面的任何指导都是高度赞赏的。我已经查看了Gradle documnetaion的“使用技巧”部分,但这对我的事业没有帮助。我期待包含目录的某些“include”属性,但是include仅适用于文件,没有给出目录示例。
最佳答案
您可以使用into
方法(请参阅https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:into(java.lang.Object))来指定存档中的目标目录。
在这种情况下,您可以执行以下操作:
task ZipOnlyB(type: Zip){
archiveName = "ArchiveOfB.zip"
destinationDir = file ("${rootDir}/toSendToArtifactory")
from fileTree('A/B')
into ('A/B')
}
这将创建包含“B”目录及其内容的第一级目录“A”的文件。如果您不希望该根目录“A”,而只希望目录“B”,请使用
into ('B')
关于gradle - 使用gradle Zip任务在存档中包含单个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53375977/