美文网首页
Gradle插件<第四篇>:Gradle 7.0配置

Gradle插件<第四篇>:Gradle 7.0配置

作者: NoBugException | 来源:发表于2022-07-26 18:14 被阅读0次

    本章节是Gradle插件<第一篇>:自定义插件的补充。

    在Gradle 7.0 中,如果要做一个插件,配置会有所变化。
    完整的配置如下:

    plugins {
        id 'java-gradle-plugin'  // Gradle开发插件
        id 'maven-publish'       // 插件发布
        id 'groovy'              // 使用Groovy
    }
    
    dependencies {
        implementation "com.android.tools.build:gradle:7.2.1"
    }
    
    gradlePlugin {
        plugins {
            MethodTracer {
                id = 'com.nobugexception.routerplugin.register'            //定义插件id
                version = '1.0'
                implementationClass = 'com.nobugexception.routerplugin.register.launch.PluginLaunch'  //定义插件实现类
            }
        }
    }
    
    // 本地发布
    publishing {
        // 定义发布什么
        publications {
            plugin(MavenPublication) {
                from components.java //使用默认的配置生成jar包
                groupId = 'com.nobugexception'
                artifactId = 'router-register'
                version = '1.0'
            }
        }
        repositories {
            maven {
                // name = 'repo'
                // url = layout.buildDirectory.dir("repo") // 发布到 router-gradle-plugin/build/repo
                url = uri('../router-register') // 发布到项目根目录
            }
        }
    }
    
    
    //远程发布, 发布到我自己的私有库
    //publishing {
    //    publications {
    //        maven(MavenPublication) {
    //            groupId = "com.sand.group"
    //            artifactId = "mt"
    //            version = "1.0.2"
    //            description "MTPlug is a good apm tool"
    //            from components.java
    //        }
    //    }
    //
    //    repositories {
    //        maven {
    //            allowInsecureProtocol true
    //            url = 'http://161.117.195.45:6677/repository/sand_repo/'
    //            credentials {
    //                it.username = "username"
    //                it.password = "pwd"
    //            }
    //        }
    //    }
    //}
    

    有一点需要注意:

    一般情况下,一个插件的resources文件夹是必不可少的,但是如果在gradle中配置了:

    gradlePlugin {
        plugins {
            MethodTracer {
                id = 'com.nobugexception.routerplugin.register'            //定义插件id
                version = '1.0'
                implementationClass = 'com.nobugexception.routerplugin.register.launch.PluginLaunch'  //定义插件实现类
            }
        }
    }
    

    就不需要再创建resources文件夹了。

    相关文章

      网友评论

          本文标题:Gradle插件<第四篇>:Gradle 7.0配置

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