Android 自定义 grdle 插件(一)

Android 自定义 grdle 插件(一),第1张

概述重新学习一下自定义gradle插件,搞Android开发的要想搞些骚 *** 作免不了需要用到自定义gradle这个武器,例如资源整理,asm插桩,代码检测等等。直入主题,开始说明步骤。创建一个测试Android项目在改项目中创建一个AndroidModule,然后更改对应library的build.gradle文件,修改后内容如下

重新学习一下自定义gradle插件,搞AndroID开发的要想搞些骚 *** 作免不了需要用到自定义gradle这个武器,例如资源整理,asm插桩,代码检测等等。

直入主题,开始说明步骤。

创建一个测试AndroID 项目在改项目中创建一个AndroID Module,然后更改对应library的build.gradle文件,修改后内容如下

然后就是集成最基本的在对应的src文件夹下创建一个kotlin文件写对应的实现,这里集成最基本的plugin类,具体实现如下
package com.xpj.firstgradlelibraryimport com.androID.build.gradle.AppExtensionimport com.androID.build.gradle.BaseExtensionimport com.androID.build.gradle.internal.tasks.factory.dependsOnimport org.gradle.API.Pluginimport org.gradle.API.Projectimport java.io.fileimport java.text.SimpleDateFormatimport java.util.*/** * author : xpj * date : 6/18/21 11:13 AM * description : */class XPJFirstPlugin : Plugin<Project> {    overrIDe fun apply(project: Project) {        // todo 这里的方法是吧自己加到assemble之前的task,构建依赖树        //将MyFirstPlugin添加到构建树        val androID = project.extensions.findByType(BaseExtension::class.java)        (androID as AppExtension).applicationVariants.all {            //将MyFirstPlugin task添加到assemble task前            //assemble依赖MyFirstPlugin的意思是说assemble运行前先运行MyFirstPlugin            it.assembleProvIDer.dependsOn(XPJ_PLUGIN_name)        }        project.tasks.create(XPJ_PLUGIN_name) { task ->            task.group = XPJ_PLUGIN_GROUP            println("我在自定义plugin里面,改变之后的。")            file("${project.projectDir.path}/IMOUT.txt").apply {                writeText("Hello World! AAAA BBB CCC\nPrinted at: ${SimpleDateFormat("HH:mm:ss").format(Date())}")            }            // 这里因为dolast在执行的时候并没有生成文件            task.dolast {                file("${project.projectDir.path}/myFirstGeneratedfile.txt").apply {                    writeText("Hello World! AAAA BBB CCC\nPrinted at: ${SimpleDateFormat("HH:mm:ss").format(Date())}")                }            }        }    }}
这里写好之后在对应的build.gradle下面执行我们的上传task这时候如果成功就会在本地或者maven生成对应的包,包含maven的形式,例如pom文件xml文件啥的在app工程里面引用,首先在project下面增加对应的引用和依赖

在app 项目下的build引用

总结

以上是内存溢出为你收集整理的Android 自定义 grdle 插件(一)全部内容,希望文章能够帮你解决Android 自定义 grdle 插件(一)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存