Java gradlezip:保留目录结构
我正在创建java文件的Zip,如下所示,但它没有保留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' }
.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'))
}