android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递

2023-05-16

介绍

我现在创建了一个应用A, 一个库工程 B , B 远程依赖了库工程C ,A远程依赖B工程. B 是通过Maven 发布成远程依赖库. B 作为一个通用的库工程,发布到了Maven上,就可以比较简单的被各个项目引入.

如下图:

问题

目前存在一个问题, 当A使用B中的代码,B使用到了C中的代码,提示C中的代码找不到. 运行就崩溃.

分析

存在这个问题,说明把B上传到Maven上的时候,没有把C的依赖传递下去,导致A使用B, B调用C 导致类找不到 崩溃.

解决

需要把依赖传递下去.

目前我采用的是我之前发的

android studio使用 maven push 插件上传私有maven - 已成功使用到项目中

里面的脚本文件 .
单个库工程是没有问题的, 但是遇到现在这种远程的,存在依赖传递的时候就有问题了, 需要改一下上传maven库的脚本.

afterEvaluate {// components.release 只有在配置完成之后,才能拿到值
        publishing {
            publications {
                
                Production(MavenPublication) {
                    // 使用方引用 implementation 'com.sinochem.apm:1.0.0-SNAPSHOT'
                    groupId = "自己定义的groupId"
                    artifactId = "自己定义的artifactId"
                    version = "自己定义的versionName"
                    // 必须有这个 否则不会上传AAR包
                    afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
                    // 上传source,这样使用方可以看到方法注释
                    artifact generateSourcesJar

                
                    // pom文件中声明依赖,从而传递到使用方
                    pom.withXml {
                        def dependenciesNode = asNode().appendNode('dependencies')
                        configurations.implementation.allDependencies.each {
                            // 避免出现空节点或 artifactId=unspecified 的节点
                            if (it.group != null && (it.name != null && "unspecified" != it.name) && it.version != null) {
                                println it.toString()
                                def dependencyNode = dependenciesNode.appendNode('dependency')
                                dependencyNode.appendNode('groupId', it.group)
                                dependencyNode.appendNode('artifactId', it.name)
                                dependencyNode.appendNode('version', it.version)
                                dependencyNode.appendNode('scope', 'implementation')
//                                dependencyNode.appendNode('scope', 'implementation')
                            }
                        }
                    }
                }
            }
            repositories {
                // 定义一个 maven 仓库
                maven {
                    // 可以有且仅有一个仓库不指定 name 属性,会隐式设置为 Maven
                    // 根据 versionName 来判断仓库地址
                    url = versionName.endsWith('SNAPSHOT') ? SNAPSHOT_REPOSITORY_URL : RELEASE_REPOSITORY_URL
                    // 仓库用户名密码
                    credentials {
                        username = maven_local_username
                        password = maven_local_psw
                    }
                }


            }
        }

    }

其他使用maven-publish 插件的问题 参考

android studio使用 maven push 插件上传私有maven - 已成功使用到项目中

打完收工. 解决问题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递 的相关文章

  • 如何解决Reporting Services目录数据库文件存在的问题

    出处 xff1a http blog sina com cn s blog 6bace3cc0101jlxv html 错误提示 xff1a 自检时提示 Reporting Services目录数据库文件存在 失败 xff0c Report
  • 无线射频专题《射频合规,2.4GHz WIFI测试指标详解》

    目录 引言 Transmitter Power 发送功率 Transmit Spectrum Mask 发送信号频谱模版 Frequency Error 频率误差 EVM 矢量误差幅度 Band Edges and harmonics 频带
  • 获取当前访问的路径

    String returl 61 request getRequestURL 43 request getQueryString 61 61 null 34 34 34 34 43 request getQueryString
  • 抓取百度关键词排名

    最近在做百度关键词排名的功能 xff0c 发现网上资源比较少 xff0c 于是自己琢磨了一下 xff0c 写一下笔记 xff1b 本文重点在于提供思路 xff0c 请不要过分依赖 xff0c 本文主要靠抓取页面标签来完成 xff0c 如果百
  • 抓取百度关键词排名、标题、连接、描述

    抓取百度关键词排名 标题 连接 描述 转载请标明出处 最近在做百度关键词排名的功能 xff0c 发现网上资源比较这里写代码片少 xff0c 于是自己琢磨了一下 xff0c 写一下笔记 xff1b 本文重点在于提供思路 xff0c 请不要过分
  • Windows Server 2008远程桌面端口的修改

    Windows Server 2008远程桌面端口系统默认的是3389端口 xff0c 但出于安全考虑 xff08 谁都不希望任何都可以远程连接到自己的服务器吧 xff0c 哈哈 xff09 xff0c 经常我们把系统默认的3389端口更改
  • jsp 登陆成功后,显示登录的用户名

    首先在登陆界面将用户名保存起来 xff0c 我这里是将用户名提交到Servlet然后再进行保存 xff0c 从登录界面取用户参数 String uname 61 request getParameter 34 userName 34 req
  • 背景图片随网页的变化而变化(指大小)

    lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 Transitional EN 34 gt lt html xmlns 61 34 http www w3 org 1999 xhtml 34 gt l
  • 为什么vscode用久了电脑速度变慢?

    1 vscode 插件占用的内存 1 已经安装的插件 2 插件占用内存 我可以看到 xff0c vs code 这个程序下面有多个进程在跑 xff0c 插件占用的内存比我电脑剩下所有占用的内存还要高 xff0c 但是vs code 性能还是
  • ROS基础学习(一)---创建工作空间

    工作空间 xff08 workspace xff1a 是一个存放工程开发相关文件的文件夹 src xff1a 代码空间 xff08 Source Space build 编译空间 xff08 Build Space devel 开发空间 x
  • 一个简单的爬虫程序,爬取网站的图片

    最简单的爬虫是分析网页 xff0c 如果要爬取图片 xff0c 就要将图片在网页中的格式进行分析 xff0c 取到图片的连接 xff0c 接着下载图片 xff1b 由于网页中还会链接到其他的网页 xff0c 所以需要将其中的所有网页取出 x
  • python文件操作及引申的代码行数统计

    文件操作一般包括文件的读写 xff0c 文件夹的创建 xff0c 文件夹的删除等 第一部分 xff1a python文件读写的基本操作 python打开文件一般使用 open函数 xff1a open file mode 61 39 r 3
  • 超声波测距仪

    基本原理 超声波是利用反射的原理测量距离的 xff0c 被测距离一端为超声波传感器 xff0c 另一端必须有能反射超声波的物体 测量距离时 xff0c 将超声波传感器对准反射物发射超声波 xff0c 并开始计时 xff0c 超声波在空气中传
  • Authorization 值中Bearer空格加token值在python接口请求中如何实现

    在项目中每个接口请求都需要Authorization 值 xff0c 而Authorization他的值必须 Bearer 加token值 xff0c 刚开始自己忘记添加Bearer 接口请求一直拒绝访问 xff0c 后来用fiddler抓
  • printf格式化字符串漏洞原理解析

    读任意地址 printf 34 x 34 只给格式化字符串 xff0c 而不给参数 xff0c 会导致内存泄漏从而读到内存中其他地址的数据 N x参数可以以16进制方式打印第N个参数的内容 xff0c 通过修改N xff0c 我们可以遍历栈
  • 教程丨利用微软官方工具制作U盘安装Win10系统

    一 制作Win10安装U盘 1 登录网站 https www microsoft com zh cn software download windows10 下载 MediaCreationTool 工具 xff0c 这里我们直接点击 立即
  • Linux常用命令大全

    发布jar包 nohup java jar xxxx jar gt dev null 2 gt amp 1 amp 修改nginx conf 后刷新配置 usr local nginx sbin nginx t 测试配置文件修改是否正常 u
  • Zab协议详解

    什么是Zab协议 xff1f Zab协议 的全称是 Zookeeper Atomic Broadcast xff08 Zookeeper原子广播 xff09 Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性 Zab协议是
  • 谷歌浏览器安装json格式化插件

    实际开发工作中经常用到json数据 xff0c 那么就会有这样一个需求 xff1a 在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来 比如 xff0c 在谷歌浏览器中访问 xff1a http jsonview c
  • Seata详解(一)

    分布式事务 事务是数据库的概念 xff0c 数据库事务 xff08 ACID xff1a 原子性 一致性 隔离性和持久性 xff09 xff1b 分布式事务的产生 xff0c 是由于数据库的拆分和分布式架构 微服务 带来的 xff0c 在常

随机推荐

  • RocketMQ的事务消息和改造

    什么是 rmq分布式事务消息 xff1f Apache RocketMQ在4 3 0版中已经支持分布式事务消息 xff0c 这里RocketMQ采用了2PC的思想来实现了提交事务消息 xff0c 同时增加一个补偿逻辑来处理二阶段超时或者失败
  • session和token区别

    一 session的状态保持及弊端 xff08 1 xff09 当用户第1次通过浏览器使用用户名和密码访问服务器时 xff0c 服务器对用户名和密码进行验证 xff08 2 xff09 验证成功后 xff0c 在服务器端生成并保存sessi
  • 关于阿里云对RocketMQ的topic,tag,consumer关系的理解

    什么是订阅关系一致 消息队列RocketMQ版 阿里云帮助中心 RocketMQ 中Topic Tag GroupName基本概念介绍 Young丶的博客 CSDN博客 rocketmq topic和group的区别 转载
  • MySql Workbench 8.0汉化插件分享

    打开workbench的安装数据目录 xff0c 路径是 xff1a C Program Files MySQL MySQL Workbench 8 0 CE data 打开以后 xff0c 可以看到下面有一堆的xml结尾的文件 xff0c
  • Java-Jdk12版本下载后没有Jre的解决方案以及配置环境变量

    新本Jdk12版本下载后不像以前的版本会自动生成Jre文件夹 xff0c 通过dos命令行可以解决 1 下载jdk12 网址 xff1a https www oracle com technetwork java javase downlo
  • android--性能优化1--首屏优化&启动速度与执行效率检测

    文章目录 实战篇traceview 工具使用操作步骤操作步骤2 systrace 工具使用操作步骤 AOP 工具 hugo 的使用使用方法效果 BlockCanary 使用AOP 工具使用 AspectJ操作步骤 优化方案 异步线程优化 针
  • error Failed connect to github.com 443原因 Github更换认证方式

    Github更换认证方式 github近期调整了认证方式 xff0c 不再允许第三方工具基于账号密码来访问和管理项目了 除非使用github DeskTop 自带的客户端 好坑啊 我一直再用android studio 自带的提交工具很方便
  • AppCompatRatingBar备份用 下次拷贝直接用自定义图片背景

    控件 lt androidx appcompat widget AppCompatRatingBar android id 61 34 64 43 id rating bar 34 style 61 34 64 style myRating
  • 备份Edittext编辑框字数限制ui以及逻辑

    ui布局 etContent addTextChangedListener new TextWatcher 记录输入的字数 private CharSequence enterWords private int selectionStart
  • android—性能优化2—内存优化

    文章目录 性能优化 工具 memory profilerLeakCanaryarthookepic 库 java内存管理机制java 内存回收机制Android内存管理机制Dalvik与 Art区别Low Memory Killer 内存抖
  • glide4.11.0封装gfilib优化gif图片加载

    文章目录 具体步骤 下载giflib 和 framesequence导入并集成 giflib 和 framesequenceglide的配置gif使用giflib集成开始使用加载思路创建自定义GifDrawable 需求 目前项目中加载进度
  • java筑基.泛型,反射,注解-利用注解加反射练习

    文章目录 泛型 泛型类泛型方法泛型接口子类明确泛型类的类型参数变量子类不明确泛型类的类型参数变量 限定类型变量通配符泛型 注解元注解注解的应用场景 反射 注解 43 反射练习 泛型 把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特
  • android性能优化实践与总结(包含启动,内存优化)

    应用中性能优化实践与总结 精心总结 任何优化都需要进行检测 以数据说话 优化前和优化后有了怎样的提升 TOC 启动优化 检测启动时间 检测工具任选其一 hugo 插件 自己定义时间开始和结束手动计算时间 AOP 工具 AspectJ adb
  • android—性能优化3—网络优化

    文章目录 网络优化正确的认识流量消耗网络优化维度其他网络请求误区 网络优化工具选择Network Proifiler抓包工具stetho流量优化如何判断APP流量消耗偏高如何测试 测试方案 线上线下流量获取线上流量获取方案NetworkSt
  • java 实现死锁

    资源抢占 导致死锁 public static void main String args final Object a 61 new Object final Object b 61 new Object Thread threadA 6
  • cameraX视频录制 拷贝直接用

    文章目录 效果图activity代码项目地址 最下面是GIT 地址 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img 3i0EaImv 1637722081187 https liudao01 github io
  • android studio maven 拉取代码出现 bad gateway 502

    一般都是gradle 配置的maven的仓库 问题 我这里是因为使用了 repositories google jcenter mavenCentral 新增 maven url 39 https www jitpack io 39 mav
  • android studio使用 maven push 插件上传私有maven - 已成功使用到项目中

    gradle 任务 下面是放在gradle 配置里面 比如 我的项目model 是 apm 那么 就把下面的代码放到 apm的 gradle 下面 plugins id 39 com android library 39 id 39 kot
  • 工作的三个层次,什么样的工作堪称自由

    工作的三个层次 xff0c 什么样的工作堪称自由 先说结论 只有工作的技艺人才是自由的 前段时间经常喜欢看建造类的视频 一个澳洲小哥 只用最原始的器械徒手打造东西 比如空手打造石斧 空手打造钻木取火套装等等 这类视频很有意思 我就特别爱看
  • android 创建Model 解决无法依赖传递问题 , 实现 sdk 依赖关系的传递

    介绍 我现在创建了一个应用A 一个库工程 B B 远程依赖了库工程C A远程依赖B工程 B 是通过Maven 发布成远程依赖库 B 作为一个通用的库工程 发布到了Maven上 就可以比较简单的被各个项目引入 如下图 问题 目前存在一个问题