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

news2024/11/18 19:45:13

注:以下示例基于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、应用插件

在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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js替换对象里面的对象名称

data为数组&#xff0c;val为修改前的名称&#xff0c;name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) &#xff1b; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句&#xff1a; 代码可复制 let tenantInf…

大模型与机器人精彩碰撞-7月5日晚上八点不见不散!

在瞬息万变的科技时代&#xff0c;新兴人工智能和机器人技术的结合正在引领新一轮的创新浪潮。你是否想成为未来科技的领航者&#xff1f;你是否想了解最前沿的AI与机器人技术&#xff1f;行麦科技重磅推出的“AIGC时代的生存法则”AI系列课&#xff0c;将为你揭开大模型与机器…

RK3568驱动指南|第十六篇 SPI-第188章 mcp2515驱动编写:复位函数

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

基于java+springboot+vue实现的家政服务平台(文末源码+Lw)299

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

RAID详解

一、RAID存储是什么&#xff1f; RAID 存储&#xff08;Redundant Arrays of Independent Disks&#xff0c;独立磁盘冗余阵列&#xff09;是一种通过将多个独 立的物理磁盘组合在一起&#xff0c;以实现更高的存储性能、数据可靠性和容错能力的技术。 其主要目的是解决单个…

Appium启动APP时报错Security exception: Permission Denial

报错内容Security exception: Permission Denial: starting Intent 直接通过am命令尝试也是同样的报错 查阅资料了解到&#xff1a;android:exported | App quality | Android Developers exported属性默认false&#xff0c;所以android:exported"false"修改为t…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧&#xff0c;不然Selection不好讲&#xff0c;那涉及到了挺多东西的&#xff0c;比元素&#xff08;Element&#xff09;和各类Filter&#xff0c;这些都与Document有关&#xff0c;所以先简单讲一下这个。 一、…

牛!手机、TV双端聚合,免费可同步!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 有不少小伙伴闲时会选择观看游戏、户外、娱乐等各类的直播&#xff0c;而关注的主播可能驻留在不同直播平台&#xff0c;需要下载多个APP&#xff0c;且切换非常不方便。 所以今天给大…

程序化交易广告及其应用

什么是程序化交易广告&#xff1f; 程序化交易广告是以实时竞价技术即RTB&#xff08;real-time bidding&#xff09;为核心的广告交易方式。说到这里&#xff0c;你可能会有疑问&#xff1a;像百度搜索关键词广告还有百度网盟的广告&#xff0c;不也是CPC实时竞价的吗&#x…

永劫无间国服延迟高、报错、卡顿的处理措施一览

永劫无间国服延迟高、报错、卡顿怎么办&#xff1f;快速解决办法分享 第一个办法&#xff1a;改善延迟 如果是一直遇到永劫无间国服延迟高、报错、卡顿的问题&#xff0c;重启游戏也不管用的话&#xff0c;那应该就是网络问题&#xff0c;玩家可以启动雷神&#xff0c;让其快速…

【CV炼丹师勇闯力扣训练营 Day22:§7 回溯1】

CV炼丹师勇闯力扣训练营 代码随想录算法训练营第22天 回溯法其实就是暴力查找,回溯的本质是穷举&#xff0c;穷举所有可能&#xff0c;然后选出我们想要的答案&#xff0c;一般可以解决如下几种问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合切割…

番外篇 | 手把手教你如何去更换YOLOv5的检测头为ASFF_Detect

前言:Hello大家好,我是小哥谈。自适应空间特征融合(ASFF)的主要原理旨在解决单次检测器中不同尺度特征的不一致性问题。具体来说,ASFF通过动态调整来自不同尺度特征金字塔层的特征贡献,确保每个检测对象的特征表示是一致且最优的。本文所做出的改进是将YOLOv5的检测头更换…

JVM原理(十一):JVM虚拟机六种必需对类进行初始化的情况

Java虚拟机把描述类的数据从Class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的Java类型&#xff0c;这个过程被称作虚拟机的类加载机制。Java天生可以动态扩展的语言特性就是依赖运行期间动态加载和动态链接这个特…

西藏文旅与薛之谦梦幻联动共赴一场灵魂的西藏之约

【西藏文旅与薛之谦的梦幻联动&#xff1a;共赴一场灵魂的西藏之约】在这个快节奏的时代&#xff0c;每一颗渴望自由与宁静的心在寻找一片净土&#xff0c;而西藏&#xff0c;便是那片无数人梦寐以求的圣地。当西藏文旅以一句“啊啊啊 可以dream一个西藏吗&#xff1f;&#xf…

小米10屏幕录制在哪里?看了这篇就会了!

无论你是想记录手机游戏的精彩瞬间&#xff0c;还是想制作教学视频&#xff0c;或者只是想保存某个应用的操作教程&#xff0c;屏幕录制都能轻松帮你实现。那么&#xff0c;对于小米10用户来说&#xff0c;屏幕录制功能究竟在哪里&#xff1f;又有哪些录屏软件可以选择呢&#…

windows电脑蓝屏解决方法(亲测有效)

如果不是硬件问题&#xff0c;打开终端尝试以下命令 sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth

等保2.0 实施方案

一、引言 随着信息技术的广泛应用&#xff0c;网络安全问题日益突出&#xff0c;为确保信息系统安全、稳定、可靠运行&#xff0c;保障国家安全、公共利益和个人信息安全&#xff0c;根据《网络安全法》及《信息安全技术 网络安全等级保护基本要求》&#xff08;等保2.0&#x…

如何用Python实现三维可视化?

Python拥有很多优秀的三维图像可视化工具&#xff0c;主要基于图形处理库WebGL、OpenGL或者VTK。 这些工具主要用于大规模空间标量数据、向量场数据、张量场数据等等的可视化&#xff0c;实际运用场景主要在海洋大气建模、飞机模型设计、桥梁设计、电磁场分析等等。 本文简单…

OpenCV直方图计算函数calcHist的使用

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 图像的直方图是一种统计表示方法&#xff0c;用于展示图像中不同像素强度&#xff08;通常是灰度值或色彩强度&#xff09;出现的频率分布。具体来说…