Gradle - 插件开发1

作者: 锐心凌志 | 来源:发表于2018-11-12 18:16 被阅读9次

    插件开发
    新建 Module
    首先新建一个项目,在项目中新建一个 Module 选择 Android Library,并修改目录结构删除不需要的文件如图:

    目录结构:

    ProjectName
        |-src
            |-main
                |-groovy
                    |-//插件具体实现逻辑
                |-resources
                    |-META-INF
                        |-gradle-plugins
                            |-<插件 group id>.properties
        |-build.gradle//插件构建配置
    

    配置项目
    首先在 src/main/groovy 下创建包名 com.jeanboy.plugin.test ,并创建 PluginImpl.groovy 文件:

    com.jeanboy.plugin.test
    
    import org.gradle.api.Plugin
    import org.gradle.api.Project
    
    class TestPlugin implements Plugin<Project> {
    
        @Override
        void apply(Project project) {
            project.task('testTask') << {
                println("========================")
                println("hello gradle plugin!")
                println("========================")
            }
        }
    }
    
    

    这时候 PluginImpl.groovy 文件应该是编译不通过的,我们修改下 build.gradle 文件,清空里面所有内容填入下面内容:

    
    apply plugin: 'groovy'//使用 groovy 插件构建项目
    apply plugin: 'maven'//用于发布本地 maven 仓库中
    
    dependencies {
        compile gradleApi()//gradle sdk
        compile localGroovy()//groovy sdk
    }
    
    repositories {
        jcenter()
        mavenCentral()
    }
    
    def groupName = 'com.jeanboy.plugin.test'//组名
    def artifactName = 'TestPlugin'//项目名
    def versionName = '1.0.1'//版本号
    
    //上传至本地仓库
    uploadArchives {
        repositories {
            mavenDeployer {
                pom.groupId = "${groupName}"
                pom.artifactId = "${artifactName}"
                pom.version = "${versionName}"
                repository(url: uri('../PluginRepository'))
            }
        }
    }
    
    

    最后修改 src/main/resources/META-INF/gradle-plugins 下的 properties 文件:

    
    implementation-class=com.jeanboy.plugin.test.PluginImpl
    //implementation-class=<这里根据自己的插件自定义配置>
    
    

    注意:该文件的文件名就是插件的名字。

    例如:com.jeanboy.plugin.test.properties

    最终使用插件时为:

    
    apply plugin: 'com.jeanboy.plugin.test'
    
    

    发布到本地仓库
    首先找到 uploadArchives ,然后双击执行这个 Task:


    执行结果如下表示创建插件成功:

    然后在项目根目录的 PluginRepository 中可以找到我们创建的插件:

    本地仓库测试
    接下来我们进行插件测试,首先需要到 app 目录下配置一下 build.gradle 引入我们的插件:

    
    //在 build.gradle 中最下面添加下面配置
    apply plugin: 'com.jeanboy.plugin.test'//使用自定义的插件
    
    //测试本地仓库中的插件
    buildscript {
        repositories {
            maven {
                url uri('../PluginRepository')
            }
        }
        dependencies {
            classpath 'com.jeanboy.plugin.test:testPlugin:1.0.1'
        }
    }
    
    

    然后刷新一下 gradle,我们就可以找到刚才创建的 Task:

    双击执行结果如下:

    项目源码
    https://github.com/jeanboydev/Android-GradlePluginTest

    相关文章

      网友评论

        本文标题:Gradle - 插件开发1

        本文链接:https://www.haomeiwen.com/subject/umgcfqtx.html