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

news2025/1/14 18:43:56

之前写过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.HookCla
            implementationClass = "com.demo.hookplugin.HookCla"
        }
    }
}

// 下边的内容一般是固定的,个人需要自己覆盖发布的url和用户名和密码,下边需要填写自己的地址和用户名密码
publishing {
    repositories {
        maven {
            allowInsecureProtocol = true
            url = 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.coloradmin.cn/o/1720685.html

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

相关文章

SwiftUI中Popover的使用(弹出方式,箭头位置,如何退出)

在iOS中,popover是出现在现有内容顶部的UI元素,通常用于在上下文中向用户呈现新视图。与其他占用整个屏幕的视图控制器不同,popover出现在一个较小的、集中的区域,从而使用户能够在必要时与popover外的应用程序的其他部分进行交互…

C#的web项目ASP.NET

添加实体类和控制器类 using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace WebApplication1.Models {public class Company{public string companyCode { get; set; }public string companyName { get; set; }public string com…

国产飞腾/龙芯/瑞芯微芯片在信创行业应用:金融行业、教育行业、党政机关

党政机构 方案背景: 在国家提出信息技术应用创新发展战略的大环境下,政务大厅需要基于国家科技自主技术深入推进“互联网政务服务”。加快建设全国一体化在线政务服务平台,进一步落实创新驱动发展战略,提升政务网络安全保障能力…

智慧园区整理技术方案(ppt,软件全套建设方案)

智慧园区管控平台整体技术方案 1.平台概述 2.公共安全 3.物业管理 4.综合管理 5.企业服务 平台规划,整理技术架构搭建,统一门户,lot物联平台,视频云管理平台,GIS服务平台,服务器架构,统一身份认…

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤,简化了对图像进行非破坏性局部调整的操作。 快捷键:B 调整画笔工具是 Photoshop 2024 年 5 月版(25.9 版)新增的工具。 ◆ ◆ …

JavaSE:SE知识整体总结

1、引言 历时一个多月的学习,已经掌握了JavaSE的知识,这篇博客就来做一下SE知识的总结~ 2、数据类型和变量 Java中的数据类型分为基本数据类型和引用数据类型。 2.1 基本数据类型 基本数据类型共有四类八种: 四类:整形、浮点…

遗留和现代数据库中的向量搜索

遗留和现代数据库中的向量搜索 image1 向量数据库是一种将数据(包括文本、图像、音频和视频)存储为向量的数据库,向量是高维空间中对象或概念的数学表示。 注意:根据数据的复杂程度和细节,每个向量的维数可能差别很大&…

SpringBoot的第二大核心AOP系统梳理

目录 1 事务管理 1.1 事务 1.2 Transactional注解 1.2.1 rollbackFor 1.2.2 propagation 2 AOP 基础 2.1 AOP入门 2.2 AOP核心概念 3. AOP进阶 3.1 通知类型 3.2 通知顺序 3.3 切入点表达式 execution切入点表达式 annotion注解 3.4 连接点 1 事务管理 1.1 事务…

面试杂谈k8s

其实看我之前的博客,k8s刚有点苗头的时候我就研究过,然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了,正苦于不知道写什么,水一篇 用来面试应该是够了 支持云应用开发、运行与运维一体化的云应用平台软件应运而生 k8s核…

前端树形结构组件的设计与实现:以企查查、天眼查股权结构为例

摘要 随着信息化时代的不断发展,数据可视化在各行各业的应用越来越广泛。特别是在商业信息查询领域,如企查查、天眼查等平台,通过直观的数据展示方式,帮助用户快速理解复杂的商业关系。本文将以一个前端tree树形结构模版组件为例…

CompassArena 司南大模型测评--代码编写

测试角度 要说测试模型,对咱们程序员来说,那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型,看看哪个才应该是咱们日常写程序的帮手。 部分模型回答 问题部分如下截图&#…

Day-04python模块

一、模块 1-1 Python 自带模块 Json模块 处理json数据 {"key":"value"} json不是字典 本质是一个有引号的字符串数据 json注意点 {} 中的数据是字符串引号必须是双引号 使用json模块可以实现将json转为字典,使用字典的方法操作数据 。 或者将…

HCIP-Datacom-ARST自选题库__MAC【14道题】

一、单选题 1.缺省情况下,以下哪种安全MAC地址类型在设备重启后表项会丢失? 黑洞MAC地址 Sticky MAC地址 安全动态MAC地址 安全静态MAC地址 2.华为交换机MAC地址表中的动态sticky MAC地址的默认老化时间是多少秒? 300 不会老化 400 500 3.华为交换机MA…

apache大数据各组件部署搭建(超级详细)

apache大数据数仓各组件部署搭建 第一章 环境准备 1. 机器规划 准备3台服务器用于集群部署,系统建议CentOS7+,2核8G内存 172.19.195.228 hadoop101 172.19.195.229 hadoop102 172.19.195.230 hadoop103 [root@hadoop101 ~]# cat /etc/redhat-release CentOS Linux rele…

揭秘APP广告变现项目

在当今移动应用市场,广告变现已经成为开发者盈利策略的重要组成部分。 通过在应用程序中展示多种类型的广告,如插页式广告、横幅广告和激励视频广告,开发者能够获得经济效益。 实现这一目标的核心在于平衡收入与用户体验,避免过…

【差分隐私联邦学习从入门到发文】

差分隐私联邦学习从入门到发文 差分隐私联邦学习从入门到发文一、学习相关理论1. 差分隐私理论解读2. 联邦学习相关收敛性分析3. 差分隐私经典论文解读4. 联邦学习代码解读5. 深度学习相关代码网站 二、必读论文三、最新进展2023 差分隐私联邦学习从入门到发文 这是关于差分隐…

虚拟现实环境下的远程教育和智能评估系统(五)

查阅相关VR眼动注意力联合教育学相关论文 1.Exploring Eye Gaze Visualization Techniques for Identifying Distracted Students in Educational VR(IEEE VR 2020) 摘要:我们提出了一种架构,使VR教学代理能够响应眼动追踪监控…

校园交友|基于SprinBoot+vue的校园交友网站(源码+数据库+文档)

校园交友网站 目录 基于SprinBootvue的校园交友网站 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台功能模块 5.2.1管理员功能模块 5.2.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

2024年四川省三支一扶报名照片上传成功啦

2024年四川省三支一扶报名照片上传成功,一定要下载照片审核工具哦,详情如下图所示

【设计模式】创建型-建造者模式

前言 在面向对象的软件开发中,构建复杂对象时经常会遇到许多挑战。一种常见的解决方案是使用设计模式,其中建造者模式是一个强大而灵活的选择。本文将深入探讨建造者模式的原理、结构、优点以及如何在实际项目中应用它。 一、复杂的对象 public class…