如何在gradle中创建包含特定目录的zip文件

时间:2015-04-02 15:39:30

标签: gradle build.gradle gradlew

我正在处理一个gradle脚本,我需要在其中创建zip文件。下面是我在工作区中的内容但是我需要zip文件中的少量文件夹,而zip文件应该使用名称application-data-1.0创建。 zip。我只需要该zip文件中的三个文件夹 数据,sql和服务。根据我的理解,我需要使用分发插件。有人可以告诉我怎么能这样做?

-rw-r--r-- 1 jenkins jenkins      38 Mar 11 22:39 at.properties
drwxr-xr-x 3 jenkins jenkins    4096 Mar 11 22:39 data
-rw-r--r-- 1 jenkins jenkins      38 Mar 11 22:39 pd.properties
-rw-r--r-- 1 jenkins jenkins    5532 Mar 11 22:39 maven.xml
-rw-r--r-- 1 jenkins jenkins   74384 Mar 11 22:39 pom.xml
-rw-r--r-- 1 jenkins jenkins      37 Mar 11 22:39 sbx.properties
-rw-r--r-- 1 jenkins jenkins     595 Mar 11 22:39 project.xml
-rw-r--r-- 1 jenkins jenkins    1020 Mar 11 22:39 project.properties
drwxr-xr-x 3 jenkins jenkins    4096 Mar 11 22:39 sql
drwxr-xr-x 3 jenkins jenkins    4096 Mar 11 22:39 services
-rw-r--r-- 1 jenkins jenkins      40 Mar 11 22:39 tst.properties
-rw-r--r-- 1 jenkins jenkins 5656258 Mar 26 15:51 application-data-1.0.zip

1 个答案:

答案 0 :(得分:0)

使用自定义zip任务,您可以执行以下操作:

task applicationDistZip(type: Zip) {
    archiveBaseName.set("application-data")
    archiveVersion.set('1.0')
    from ('.') {
        include 'data/**'
        include 'services/**'
        include 'sql/**'
    }
}

使用分发插件:

distributions {
    application {
        baseName = 'application-data'
        version = '1.0'
        contents {
            from ('.') {
                include 'data/**'
                include 'services/**'
                include 'sql/**'
            }
        }
    }
}

要生成zip,只需运行命令applicationDistZip