重新学习一下自定义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 插件(一)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)