Android Gradle 使用Zip任务打包

Android Gradle 使用Zip任务打包

背景:在一个项目中包含两个Module:一个主Module,一个库Module。主Module为库Module的调用示例。为了将主Module源码单独打包分发给外部用户,并且要保持项目结构不变且可直接运行,所以需要自定义一个打包任务来完成。

需要打包的文件:
rootDir/app/
rootDir/build.gradle
rootDir/settings.gradle

使用Gradle Zip类型任务

task exportDemoProject(type: Zip, group: "group_name") {
    into('rootDir/app') {
        from('app').exclude ('build', 'release')
    }

    into('rootDir') {
        from('build.gradle',  'settings.gradle')
    }

    destinationDir file('export')
    baseName 'demo'
    appendix 'openapi-invoke'
    version 'v1.0.0'
    extension 'zip'
    classifier 'source'
}
属性名 类型 默认值 描述
archiveName String baseName-appendix-version-classifier.extension,如果其中任何一个都是空的,则不添加名称 归档文件的基本文件名
archivePath File destinationDir/archiveName 生成归档文件的绝对路径。
destinationDir File 取决于文档类型, JAR 和 WAR 使用project.buildDir/distributions. project.buildDir/libraries.ZIP 和 TAR 归档文件的目录
baseName String project.name 归档文件名的基础部分
appendix String null 归档文件名的附加部分
version String project.version 归档文件名的版本部分
classifier String null 归档文件名的分类部分
extension String 取决于文档类型和压缩类型: zip, jar, war, tar, tgz 或者 tbz2. 归档文件的扩展名

需要注意的是,如果直接使用from(‘app’)方式指定需要打包的源文件,最终的压缩文件中是不包含‘app’这个目录的,也就破坏了Android的项目结构。

你可能感兴趣的:(Android,Gradle)