Gradle Zip:保留目录结构
Gradle Zip: retain the directory structures
我正在创建我的 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 文件的 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'))
}