文章目录

  • Gradle插件开发开发学习,发布repo本地仓库
  • 一.Gradle插件
  • 二.Gradle插件开发,页面路由
  • 1.buildSrc
  • 2.插件运行
  • 3.参数配置
  • 三. 发布简易版Gradle插件
  • 3.1 发布到本地仓库


Gradle插件开发开发学习,发布repo本地仓库

一.Gradle插件

提供具体的构建功能

提高代码的复用性

二进制插件

脚本插件

在工程项目下的build.gradle文件中

二进制插件

// Top-level build file where you can add configuration options common to all sub-projects/modules.
//声明插件ID与版本号
plugins {
    id 'com.android.application' version '7.4.2' apply false
    id 'com.android.library' version '7.4.2' apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
    id 'org.jetbrains.kotlin.jvm' version '1.8.20' apply false
}

应用插件

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

脚本插件,新建一个gradle脚本文件

gradle 上传本地仓库_Gradle

在子过程中添加这个插件的关联

gradle 上传本地仓库_android_02

二.Gradle插件开发,页面路由

标记页面,收集页面,生成文档,注册映射,打开页面

1.buildSrc

gradle 上传本地仓库_Gradle_03

配置

//引用groovy插件,编译插件工程中的代码
apply plugin: 'groovy'

//声明仓库的地址
repositories {
    mavenCentral()
}
//声明依赖的包
dependencies{
    implementation gradleApi()
    implementation localGroovy()
}

2.插件运行

手动创建这个目录

gradle 上传本地仓库_maven_04

配置

gradle 上传本地仓库_Gradle_05

app模块中测试一下

gradle 上传本地仓库_Gradle_06

正确输出

gradle 上传本地仓库_android_07

3.参数配置

类似下面这些就是参数配置

android {
    namespace 'com.qfh.common'
    compileSdk cfg.android.compileSdk

    defaultConfig {
        applicationId cfg.applicationId.app
        minSdk cfg.android.minSdk
        targetSdk cfg.android.targetSdk
        versionCode cfg.android.versionCode
        versionName cfg.android.versionName

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

定义Extension,注册Extension,使用Extension,获取Extension

新定义一个类

gradle 上传本地仓库_maven_08

注册Extension,回调.

gradle 上传本地仓库_maven_09

设置我们的参数,在上面的回调中就会获取到我们用户设置的参数值。

gradle 上传本地仓库_Gradle_10

三. 发布简易版Gradle插件

3.1 发布到本地仓库
//调用maven插件,用于发布
apply plugin: 'maven-publish'
publishing {
    repositories {
        maven {
            //设置发布路径为工程根目录下面的 repo文件夹
            url = uri('../repo')
        }
    }
    publications {
        maven(MavenPublication) {
            //设置groupId,通常为包名
            groupId = 'com.qfh.route'
            //设置artifactId,为当前插件的名称
            artifactId = 'router-gradle-plugin'
            version = '1.0.0'
        }
    }
}

copy一份buildSrc重新命名为插件的名称router-gradle-plugin,不能直接在buildSrc中发布插件。

gradle 上传本地仓库_学习_11

在项目的根目录下注册这个拷贝后的子工程

gradle 上传本地仓库_maven_12

双击publish就可以发布到本地仓库

gradle 上传本地仓库_Gradle_13

最终多了一个文件夹目录

gradle 上传本地仓库_android_14