我的项目的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 压缩文件的实际内容: A /目录目录B
我如何才能获得预期的结果。在这方面的任何指导都是高度赞赏的。我已经查看了Gradle documnetaion的“使用技巧”部分,但这对我的事业没有帮助。我原本希望某些“ include”属性包含目录,但是include仅适用于文件,没有给出目录示例。
答案 0 :(得分:1)
您可以使用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')