Gradle插件使用过程记录

博客介绍了Android中基于Gradle进行编译打包时,Gradle插件的开发过程。包括新建buildSrc模块、删除和新建文件夹、编写代码、修改配置文件、添加本地maven库、编译构建插件库、导入主工程等步骤,还提到可用于apk编译打包流程的hook操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android中基于Gradle进行编译打包的过程,下面记录一下如何进行Gradle插件开发的过程:

首先在项目中新建的一个名为buildSrc的module,为什么叫这个名字请看官方文档。然后将Java文件夹以及res文件夹删除,新建groovy文件夹以及resource文件夹:

在groovy文件夹下新建package的目录,在我这依次是com/lin/plugin,然后在resource文件夹下建立META-INF/gradle-plugins两个文件夹,在文件夹中添加包名.properties文件,其内部代码如下:


implementation-class=com.lin.plugin.TestPlugin

TestPlugin.groovy的代码如下:



class TestPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
        println('--------------------------')
        println('this is a buildSrc plugin...')
        println('--------------------------')
    }
}

修改buildSrc的build.gradle文件:

//添加groovy和maven插件
apply plugin: 'groovy'
apply plugin: 'maven'

//本地发布插件
uploadArchives {
    repositories {
        mavenDeployer {//用于发布本地maven
            pom.groupId = "com.lin.plugin"
            pom.artifactId = "test"
            pom.version = "0.0.1"
            repository(url: uri('../repo'))
        }
    }
}
task sourcesJar(type: Jar) {
    from project.sourceSets.main.groovy.srcDirs
    classifier = 'sources'
}
task javadocJar(type: Jar, dependsOn: groovydoc) {
    classifier = 'javadoc'
    from groovydoc.destinationDir
}
artifacts {
    archives javadocJar
    archives sourcesJar
}
//插件依赖
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile gradleApi()
    compile localGroovy()
}

然后在项目根目录的build.gradle中添加本地maven库,目的是为了能够在主工程中使用我们创建的插件:

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven{
            url uri('./repo')//本地maven,用于发布测试插件
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.lin.plugin:test:0.0.1'//本地maven,依照上面uploadArchives内的命名组装
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }


进行编译,编译完成后在插件的gradle命令中可以看到多出了如下命令:

双击该命令用于构建插件库,构建完成后能够在项目根目录下看见生成问maven文件:

然后将插件导入我们的主工程build.gradle当中


apply plugin: 'com.lin.plugin'

运行assemble命令,构建项目,可以run窗口看到TestPlugin的执行:

通过该方式就编译好了一个Plugin插件了,如果项目需要针对apk的编译打包流程做一些处理的话,就可以使用上述的插件进行hook的操作了,关于更多的gradle使用方法,移步官网阅读即可。

转载于:https://my.oschina.net/u/3863980/blog/3024568

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值