Gradle学习-5 发布二进制插件

注:以下示例基于Gradle8.0

1、发布插件

  • 复制一分 buildSrc,执行命令行,生成一个新目录 leon-gradle-plugin
 cp -rf buildSrc leon-gradle-plugin

在这里插入图片描述

  • 在 leon-gradle-plugin 目录下的 build.gradle 中引入maven

plugins{
    // 引用 Groovy 插件,编译插件工程中的代码
    id 'groovy'
    // 引用 maven插件,用于发布 ( >= Gradle 7.0)
    id 'maven-publish'
//    //引用 maven插件,用于发布 ( < Gradle 7.0)
//    id 'maven'
}

声明仓库地址
//repositories {
//    jcenter()
//}

//声明依赖包
dependencies {
    implementation gradleApi()
    implementation localGroovy()
}



/************* 发布相关 ****************/
//配置 maven 插件中的 发布 任务(>= Gradle 7.0)
publishing {

    publications {
        mavenJava(MavenPublication){
            //设置groupId,通常为当前插件的包名
            groupId = 'com.leon.router.gradle'
            //设置artifactId,作为当前插件名称
            artifactId = 'leon-gradle-plugin'
            //设置插件版本号
            version = '1.0.0'

            // 指定要发布的组件,例如Java库或插件等
            from components.java
        }
    }

    repositories{
        maven {
            //设置发布路径为  工程根目录下的  leon-publish 文件夹
            url = uri("../leon_publish")
        }
    }
}

配置 maven 插件中的 发布 任务(< Gradle 7.0)
//uploadArchives{
//    repositories{
//        mavenDeployer{
//
//            //设置发布路径为  工程根目录下的  leon-publish 文件夹
//            repositories(url: uri("../leon_publish")){
//
//                //设置groupId,通常为当前插件的包名
//                pom.groupId = 'com.leon.router.gradle'
//
//                //设置artifactId,作为当前插件名称
//                pom.artifactId = 'leon-gradle-plugin'
//
//                //设置插件版本号
//                pom.version = '1.0.0'
//
//            }
//        }
//    }
//}
  • 在根目录下的 setting,gradle 中引入 模块 leon-gradle-plugin

在这里插入图片描述

  • 执行发布任务,命令行执行以下命令
//Gradle大于等于7.0时
./gradlew :leon-gradle-plugin:publish

//Gradle小于7.0时
./gradlew :leon-gradle-plugin:uploadArchives

在这里插入图片描述
根目录下就会生成 leon_publish目录
在这里插入图片描述

2、在其他工程中引用发布插件

新建一个Gradle8.0的Android工程 My Application

2.1、引入自定义maven仓库

在根目录的setting.gradle中,加入以下内容

buildscript {
    repositories {
        // 1、引入自定义maven仓库
        maven {
            url uri("/Users/leon/AndroidStudioProjects/GradleLeaning2/leon_publish")
        }
    }
    dependencies {
        //2、声明依赖插件
        classpath 'com.leon.router.gradle:leon-gradle-plugin:1.0.0'
    }
}

在这里插入图片描述

2.2、应用插件

在app目录下的build.gradle中加入以下配置

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
    //3、应用插件
    id 'com.leon.rt'
}

//4、向插件传递参数
leonEx {
    projectName project.name
    projectPath project.getProjectDir().absolutePath
}

在这里插入图片描述

  • 执行命令行
./gradlew clean -q

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KillerNoBlood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值