gpt4 book ai didi

java - Gradle Zip:保留目录结构

转载 作者:行者123 更新时间:2023-12-03 03:44:17 25 4
gpt4 key购买 nike

我正在如下创建Java文件的Zip,但它没有在.zip中保留目录结构

task ('apiJavaDocSources', type: Zip) {

from fileTree('core-module/src/mypackage/').matching {
'subpackage/*Exception.java'
'subpackage/package-info.java'
'anotherpackage/*.java'
}

from fileTree('lib-module/src/mypackage/').matching {
'bundleinfo/*Dummy.java'
'bundleinfo/Random.java'
}
archiveName 'api-javadoc-sources.zip'
destinationDir(file('image'))
}

我想保留zip中的目录结构为
  api-javadoc-sources.zip
-- core-module
-- /src/mypackage/
-- subpackage/*.java
-- anotherpackage/*.java
-- lib-module
-- /src/mypackage/
-- bundleinfo/*.java
但是,我的实现只是将所有 *.java放在 .zip的根目录中,如何在zip内保留目录结构?

最佳答案

fileTree()方法将不会保留您从中进行采购的目录层次结构。您需要在复制规范中指定into目录,以指定要将匹配的文件放置在zip内的目录中。
以下任务应完成您想要的:

task ('apiJavaDocSources', type: Zip) {
// search for files in this directory
from('core-module/src/mypackage') {
// indicates that all matches files should be nested in this directory inside of the zip
into 'core-module/src/mypackage'
// match file patterns
include 'subpackage/*Exception.java'
include 'subpackage/package-info.java'
include 'anotherpackage/*.java'
}

from('lib-module/src/mypackage') {
into 'lib-module/src/mypackage'
include 'bundleinfo/*Dummy.java'
include 'bundleinfo/Random.java'
}

archiveName 'api-javadoc-sources.zip'
destinationDir(file('image'))
}

关于java - Gradle Zip:保留目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64119783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com