java - Gradle Zip:保留目录结构

标签 java gradle build build.gradle

我正在如下创建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/

相关文章:

java - RestEasy简单配置中的ClassNotFoundException

java - 从 cmd 运行 JavaFX

android-studio - Android Studio - 任务 ':app:compileDebugKotlin' 执行失败 - 无法转换工件“x86_debug.jar”

java - 无法构建 JavaFX 应用程序

r - 我可以指定下载用于构建 R 包的源代码的去向吗

java - 如何找到错误 TCP 连接的原因

java - JAR 隐藏在 EXE 中?

用于两个或多个 python 文件(模块)的 Python cx_Freeze

gradle - 如何使用 gradle tooling api 将插件应用于构建脚本?

java - 使用 protobuf-gradle-plugin 生成 protobuf 文件描述符