Android Studio创建buildSrc目录,并在其中写gradle打包apk等文件生成zip

Posted 胡刚2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio创建buildSrc目录,并在其中写gradle打包apk等文件生成zip相关的知识,希望对你有一定的参考价值。

1.在Project下面创建buildSrc文件夹

2.在创建好的buildSrc文件夹下创建build.gradle文件,并写入

apply plugin:'java'

3.点击build按钮,等待build完成后,在buildSrc目录下创建src/main/java目录



3.在创建好的java文件夹下创建java Class,命名为MyPlugin


4.将下列代码写入MyPlugin.java

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.tasks.bundling.Zip;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

class MyPlugin implements Plugin<Project>
    @Override
    public void apply(Project target) 
        target.afterEvaluate(project -> 
            System.out.println(project.getTasks().getByName("packageDebug"));
            Map<String, Class<?>> type = new HashMap<>();
            type.put("type", Zip.class);
            Zip zipDebug2 = (Zip) target.task(type, "zipDebug2");
            zipDebug2.setArchiveName("output4.zip");
            zipDebug2.setDestinationDir(new File(target.getBuildDir().getAbsolutePath()+"/custom"));
            zipDebug2.from(target.getTasks().getByName("packageDebug").getOutputs().getFiles());
        );
    



5.在app/build.gradle这个文件写入

apply plugin: MyPlugin


6.运行我们在MyPlugin这个Class中定义的zipDebug2,即可生成最终的zip文件

注意:写完代码后,一定要在控制终端敲入命令运行zipDebug这个自定义的task,点击build按钮或者Rebuild是无法生成最终的zip文件的


以上是关于Android Studio创建buildSrc目录,并在其中写gradle打包apk等文件生成zip的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 )

invalid gradle jdk configuration found android studio 项目不显示文件,只显示gradle android studio 没有android 目