美文网首页
Gradle插件开发

Gradle插件开发

作者: dreamkid | 来源:发表于2020-08-25 13:43 被阅读0次

    关联文章

    Gradle构建工具
    Groovy入门


    gradle是基于jvm的构架工具,通常使用dsl语言groovy开发,目前同样支持用kotlin进行开发

    gradle插件开发(上传到本地仓库)

    1.创建groovy工程

    1.1创建一个java-library工程,在src/main目录下新建groovy目录,在groovy目录下编写自定义插件

    image.png
    class Test implements Plugin<Project>{
        @Override
        void apply(Project project) {
            project.task("testTask"){
                try {
                    def assetsPath = project.android.sourceSets.main.assets.getSrcDirs()[0]
                    println("testtask:$assetsPath")
                }catch(Exception e){
                    println("获取assets目录失败")
                    println("父目录是:$project.parent.projectDir.absolutePath")
                }
    
            }
    
        }
    }
    

    1.2需要在当前库build.gradle文件中引入groovy和maven的api,指定版本信息,上传本地仓库

    apply plugin 'groovy'
    apply plugin 'maven'
    
    group='com.hezd.plugins'
    version='1.0.0'
    uploadArchives{
        repositories{
            mavenDeployer{
                repository(url:uri('../repo'))// 本地仓库地址
            }
        }
    }
    
    dependences {
        implementation gradleApi()
        implementation localGroovy()
    }
    

    1.3在src/main/resouces目录下创建插件配置文件,文件名就是groupid,例如这里的groupid指定位com.hezd.test,创建properties文件com.hezd.test.properties

    image.png

    1.4文件中指定自定义插件名称

    implementation-class=com.hezd.plugins.Test
    

    2.执行上传仓库命令,在父目录下生成repo本地仓库

    image.png image.png

    3.在需要应用插件的库引入此插件

        apply plugin: 'com.hezd.test'
        buildscript {
            repositories{
                maven {
                    url uri(
                            '../repo'
                    )
                }
            }
    
            dependencies {
                classpath 'com.hezd.plugins:GroovyShare:1.0.0'
            }
        }
    

    demo工程:
    https://github.com/dreamkid/GradlePluginDemo

    感谢:
    http://liuwangshu.cn/application/gradle/6-custonplugin.html
    https://blog.csdn.net/Gdeer/article/details/83062523

    相关文章

      网友评论

          本文标题:Gradle插件开发

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