Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java gradlezip:保留目录结构_Java_Gradle_Build_Build.gradle - Fatal编程技术网

Java gradlezip:保留目录结构

Java gradlezip:保留目录结构,java,gradle,build,build.gradle,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' }

我正在创建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()
将不会保留您从中获取的目录层次结构。您需要在复制规范中指定
目录,以指定要将匹配的文件放置在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'))
}