android gradle8.3 发布插件踩过的坑

之前写过gradle6.x和gradle7.x的插件,会有一些改动,到8.x我发现又有一些变化,记录一下,防止后边再遇到相同的情况

  • 下边是插件的gradle文件配置
plugins {id("java-gradle-plugin") //会自动引入java-library、gradleApi()id("org.jetbrains.kotlin.jvm") //支持kotlin编写插件id("maven-publish") //maven发布插件
}dependencies {implementation localGroovy()implementation gradleApi()implementation 'com.android.tools.build:gradle:8.3.0'implementation 'org.javassist:javassist:3.28.0-GA'//ASM相关依赖implementation 'org.ow2.asm:asm:9.2'implementation 'org.ow2.asm:asm-commons:9.2'
}gradlePlugin {plugins {// 这里的hookplugin,在发布的使用需要使用publishing下的 publish 进行发布create("hookplugin") {// 这里在总项目的build.gradle下,classpath "com.hookapp.plugin:hookplugin:1.0.16"group = "com.hookapp.plugin"// id对应的值,其实就是在app下的build.gradle文件中依赖的值,使用方法是:id("applovins")id = "applovins"// 依赖的版本,没什么好说的version = "1.0.16"// 这里就是替代了原来resources下边的properties文件里面的内容,原内容是 implementation-class=com.demo.hookplugin.HookClaimplementationClass = "com.demo.hookplugin.HookCla"}}
}// 下边的内容一般是固定的,个人需要自己覆盖发布的url和用户名和密码,下边需要填写自己的地址和用户名密码
publishing {repositories {maven {allowInsecureProtocol = trueurl = uri('http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx')credentials {it.username = "xxxxx"it.password = "xxxxxxxx"}}}
}

新建module完成之后,需要按照上边的进行配置,然后 点击这个module的tasks下的publishing下的 publish进行发布
任务,发布到远端

如何使用呢?
首先在项目的build.gradle中,引入

dependencies {classpath 'com.android.tools.build:gradle:8.3.0'classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"classpath "com.hookapp.plugin:hookplugin:1.0.16"}

然后在app下的build.gradle中引入

plugins{id("com.android.application")id("kotlin-android")id("applovins")
}

请仔细阅读,什么时候用hookplugin,什么时候用applovins。
下边是项目截图
在这里插入图片描述

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

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

相关文章

【ES实战】ES集群机器磁盘IO过高告警分析

ES集群机器磁盘IO过高告警分析 文章目录 ES集群机器磁盘IO过高告警分析现象分析思路与手段获取告警机器的磁盘高IO时的文件通过IO文件确认索引分析思路 优化第一步:每个data实例用不同的磁盘第二步:业务调整数据写入的集中程度第三步:扩容 反…

摄影后期照片编辑工具:LrC2024 for Mac/win 中文激活版

LrC2024(Lightroom Classic 2024)是 Adobe 公司推出的一款专业级别的照片编辑和管理软件。它是 Lightroom Classic CC 的升级版,具有更多的功能和改进。 这款软件主要用于数字摄影师和摄影爱好者处理、编辑和管理他们的照片。它提供了一套强大…

android 调试UI 按钮无法点击事件问题

软件平台:Android11 硬件平台:QCS6125 问题:UI控件无法点击 首先,打开了Android自带的pointer_location报点轨迹,用电磁笔点击按钮,发现有点位,但是控件未见响应,基本排除硬件、驱动…

[英语单词] production quality

Our goal is to implement a production quality switch platform that supports standard management interfaces and opens the forwarding functions to programmatic extension and control. 说在openswitch的文档里有说这两词,含义是产品质量。是production修…

CAPL汽车编程语言实例

CAPL汽车编程语言实例 在汽车行业中,CAPL(Communication Access Programming Language)是一种广泛使用的编程语言,主要用于CAN(Controller Area Network)网络的开发和测试。CAPL语言以其强大的功能和灵活性…

【网络安全的神秘世界】在win11搭建pikachu靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 下载pikachu压缩包 https://github.com/zhuifengshaonianhanlu/pikachu 下载好的pikachu放在phpstudy_pro/www目录下 创建pikachu数据库 打开phpstudy软件…

【docker】docker启动bitnami/mysql

说明:-v 宿主机目录:docker容器目录,-p 同理 注意:/opt/bitnami/mysql/conf/bitnami 目录自定义conf的目录,不能使用原有的/opt/bitnami/mysql/conf 目录。 容器启动后可在宿主机的/宿主/mysql8.0/conf,添加my_custom.…

独立开发的轻量级简洁开源论坛BBS PHP源码

最新的轻量级开源论坛php源码发布啦!这是一款独立开发的论坛系统,可以帮助你快速地开发出你想要的网站。 如果你是PHP初学者,这款论坛系统非常适合你入门学习。不过,需要注意的是,由于它并没有进行商业化改造&#xf…

docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)

EFK日志系统搭建 EFK日志系统介绍功能需求搭建elasticsearch集群规划前提部署核对证书及权限 EFK日志系统介绍 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于…

【ARM-Linux篇】u-boot编译

一、u-boot简介 uboot是一种通用的引导加载程序,它可以用于多种嵌入式系统,支持多种操作系统,如Linux, Android,NetBSD等。uboot的主要作用是将操作系统内核从存储设备(如Flash, SD卡等)加载到内存中,并执…

点云从入门到精通技术详解100篇-基于超体素类型的三维点云区域生长分割(续)

目录 2.6.4 凹凸性约束 3基于超体素类型的三维点云区域生长分割算法 3.1 算法描述

一个令人惊艳的开源技术盛宴,来了!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 在 GitHub 上,每天都会诞生各种实用的开源项目,这些项目在不同行业与领域得到充分应用,推动技术发展,让普通人也能够真切感受到科技魅力。 而…

使用 EBS 和构建数据库服务器并使用应用程序与数据库交互

实验 4:使用 EBS 实验概览 本实验着重介绍 Amazon Elastic Block Store (Amazon EBS),这是一种适用于 Amazon EC2 实例的重要底层存储机制。在本实验中,您将学习如何创建 Amazon EBS 卷、将其附加到实例、向卷应用文件系统,然后进…

基于vue3 elment+ 的文件及表单参数上传,响应接受

这里有几个关键是 第一个是 上传用Content-Type: multipart/form-data方式向后台请求数据 application/json不行。这里需要单独设置一下覆盖一下通用的请求api方法 //一般通用application/json 请求api方式的写法 export const getbuttonlist () > { return request.get(…

ES 生命周期管理

一 .概念 ILM定义了四个生命周期阶段:Hot:正在积极地更新和查询索引。Warm:不再更新索引,但仍在查询。cold:不再更新索引,很少查询。信息仍然需要可搜索,但是如果这些查询速度较慢也可以。Dele…

TOPIAM数字身份管控平台前端技术实践

一、引言 随着企业信息化程度的不断加深,内部办公系统、业务系统及三方SaaS系统的集成与整合成为企业面临的重要挑战之一。特别是如何有效管理员工账号、权限、身份认证以及应用访问,成为保障企业信息安全、提升用户体验的关键。TOPIAM数字身份管控平台…

VSCode Prettier - Code formatter 代码格式化

格式化代码是一个挑战,但现代开发工具可以自动保持团队代码库的一致性。 在本文中,您将设置 Prettier 以自动格式化 Visual Studio Code(也称为 VS Code)中的代码。 1. 安装插件 2. 定义代码风格 在项目根目录下创建一个pretti…

JAVA:异步任务处理类CompletableFuture让性能提升一倍

一、前言 CompletableFuture 是 Java 8 引入的一个功能强大的类,用于异步编程。它表示一个可能尚未完成的计算的结果,你可以对其添加回调函数来在计算完成时执行某些操作。在 Spring Boot 应用中,CompletableFuture 可以用于提高应用的响应性…

【NPS】微软NPS配置802.1x,验证域账号,动态分配VLAN(有线网络篇)

上两篇中介绍了如何配置NPS和在WLC上如何配置802.1X来实现验证域账号和动态分配VLAN,802.1x协议作为一种成熟的身份验证框架,不仅适用于无线网络,同样也适用于有线网络环境。这里我们将介绍如何在有线网络中部署802.1x认证,以验证…

Android Coil的简单介绍及使用

前言: 本文是借鉴网上大佬的Coil相关技术文章及结合自己项目中的实际使用情况,对Coil作一个简单介绍。 简介: Coil是一个Android的图片加载框架库,是通过Kotlin协程的方式加载图片的,相对于Glide、Picasso、Fresco等…