首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韩曙亮的移动开发专栏

    【Android Gradle 插件】Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )

    文章目录 一、compile 依赖作用 二、implementation 依赖作用 三、api 依赖作用 四、compileOnly 依赖作用 五、annotationProcessor 依赖作用 六 、lintChecks 依赖作用 在本篇博客中逐一分析以下依赖配置 : implementation api compileOnly runtimeOnly annotationProcessor lintChecks B 依赖库 , 最终 B 依赖库会打包到 A 项目的 Apk 文件中 ; 如果 C 项目 依赖 A 项目 , 由于 compile 配置会 传递依赖 , C 项目也需要将 B 依赖库导入到自己的依赖中 非常低 , 构建时会 不停的检查依赖树 , 发现依赖传递后 , 还要 添加依赖依赖 ; 二、implementation 依赖作用 ---- implementation 依赖作用 : 编译打包 : , 发现依赖传递后 , 还要 添加依赖依赖 ;因此 这两个 依赖方式 不常用 , implementation 依赖是当前最常见的依赖方式 ; 三、api 依赖作用 ---- api 依赖作用 :

    2.9K10编辑于 2023-03-30
  • 来自专栏我们一无所有,我们巍然矗立

    Spring依赖注入源码分析

    Spring依赖注入 文章目录 Spring依赖注入 Chapter 1 Spring依赖注入源码分析 1 调用示例 2 DefaultListableBeanFactory#resolveDependency 方法分析 3 DependencyDescriptor 4 doResolveDependency 5 resolveMultipleBeans 6 findAutowireCandidates 7 beanNamesForTypeIncludingAncestors 8 isAssignableFrom 9 determineAutowireCandidate 10 determinePrimaryCandidate Chapter 1 Spring依赖注入源码分析 // 关闭容器 applicationContext.close(); } } 2 DefaultListableBeanFactory#resolveDependency方法分析 DefaultListableBeanFactory#resolveDependency 解析依赖的方法 DependencyDescriptor descriptor 依赖的描述符 String requestingBeanName

    80830编辑于 2022-07-30
  • 来自专栏软件开发-青出于蓝

    SpringBoot之依赖分析

    图2 SpringBoot-1.4.8源码目录结构 spring-boot-dependencies中无Java代码,它的dependencyManagement中定义了很多依赖,并指定了版本。 spring-boot-starter-parent中无Java代码,它的dependencyManagement中,spring-core依赖排除commons-logging依赖,如下所示: <dependencyManagement dependency> </dependencies> </dependencyManagement> spring-boot-parent中无Java代码,它的dependencyManagement中新增了一些依赖 spring-boot-starter中无Java代码,但它的dependencies添加了一些依赖,代码如下: <dependencies> <dependency> <groupId>org.springframework.boot

    1.3K20发布于 2019-04-15
  • 来自专栏软件工程

    SpringBoot起步依赖原理分析

    为什么我们需要进行起步依赖的配置?

    23420编辑于 2022-05-13
  • 来自专栏phodal

    自动化依赖分析

    依赖分析之后,你的架构还好吗? 在过去的几周里,我一直在做一些重构相关的工作,也尝试着去做这方面的自动化。于是乎,就有了上一篇文章:《重构的自动化》。 在图中,我们可以看出类间的依赖关系,从而进一步分析他们的引用问题。虽然,对于采用分层架构的应用来说,这样的问题并不容易出现。但是,我们仍在一定的范围内,看到了 service 间的相互调用。 于是,在参考了公司大佬的开源依赖分析项目: 基于 Antlr 进行 Java 依赖分析 https://github.com/XuefengWu/dependence_java 基于 Doxygen 进行多种语言的依赖分析 https://github.com/newlee/tequila 随之而后,我便也着手做了一个相关的 Java 依赖分析工具:https://github.com/phodal/coca 。 第三方依赖依赖功能分析 TBD 这部分的内容,主要指的是依赖间的功能重复,如各类 Util,像 FileUtils,TimeUtils 诸如此类。' 结论 你呢,有什么建议?

    1.8K30发布于 2019-11-21
  • 来自专栏韩曙亮的移动开发专栏

    【Android Gradle 插件】Gradle 依赖管理 ⑥ ( dependencies 依赖查找路径 | dependencies 依赖冲突 | dependencies 依赖库层级分析 )

    文章目录 一、dependencies 依赖查找路径 二、dependencies 依赖冲突问题 三、dependencies 依赖库层级分析 Android Plugin DSL Reference 函数库 ; 在上一篇博客 【Android Gradle 插件】Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 ) 中介绍了如果配置了两个相同的依赖 , 则选取较高版本的依赖库 , 因此原理上 , 不会出现依赖冲突问题 ; 三、dependencies 依赖库层级分析 ---- 分析依赖问题 , 就需要查看依赖情况 , 在 Terminal 面板中执行 gradlew :app:dependencies 命令 , 查看依赖的情况 , 逐个排查依赖冲突问题 ; 在输出日志中 , 可以查看顶层依赖库 , 与依赖库的依赖库之间的依赖关系 ; com.android.support.constraint:constraint-layout:2.0.1 是顶层依赖库 , +--- com.android.support.constraint

    2.6K40编辑于 2023-03-30
  • 来自专栏深度学习与计算机视觉

    Python使用pipreqs分析项目依赖

    Python的程序一般需要很多依赖包,如果想要把这些包导出成requirements.txt的形式,常规的方法是直接使用pip freeze命令: pip freeze > requirements.txt 随后,在另一个环境中使用: pip install -r requirements.txt 从requirements.txt中恢复依赖环境。 与pip freeze不同,pipreqs会分析当前项目的依赖,并且只导出当前项目需要的包: 首先安装pipreqs: pip install pipreqs 将路径定位到项目的root路径,如果当前就在

    2.6K10发布于 2020-03-25
  • 来自专栏小赵Java总结

    【源码分析】Spring依赖注入原理

    文章目录 一、三种依赖注入方式 字段注入 构造器注入 Setter注入 二、依赖注入原理 Bean 注册 Bean 实例化 ---- 一、三种依赖注入方式 在Spring中提供了三种实现依赖注入的方式: 接下来进行分析一下。 避免使用字段注入第二个原因:可能导致潜在的循环依赖。循环依赖指的是两个类之间互相进行注入。 二、依赖注入原理 前面介绍完依赖注入的三种实现方式,接下来结合Spring源码深入的了解下依赖注入的原理,通过Bean 注册和Bean 实例化两个模块进行阐述。 至此分析Spring中Bean依赖注入的过程就全部结束,希望对大家有所帮助!!!

    1.6K31编辑于 2022-12-01
  • 来自专栏Unity3d程序开发

    Unity3d+GameFramework:资源分析,资源依赖,循环依赖检测

    资源依赖 先生成Resource 根据ResourceCollection.xml Resource resource = Resource.Create(name, variant, fileSystem f0ce9e0e8a0456d4f992300134cfd602”,“Name”:“Assets/GameMain/luoyikun/Cube2.prefab”,“Resource”:null} 生成依赖关系 } 出现a等待b,b等待a,因为 GameFramework.Resource.ResourceManager.ResourceLoader.LoadResourceAgent.Start //遍历依赖 stamp的依赖 if (visited.Contains(stamp.DependencyAssetName)) { ,递归调用,cube2放入visited ,route的最后 递归,遍历所有依赖对,cube2不是记录1的host,跳过记录1 来到记录2,此时visited包含了cube1,把cube1插入route

    69130编辑于 2023-08-24
  • 来自专栏Spark学习技巧

    IDEA依赖冲突分析神器—Maven Helper

    此插件可用来方便显示maven的依赖树,在没有此插件时,如果想看maven的依赖树需要输入命令行:mvn dependency:tree 才可查看依赖。 如果想看是否有依赖包冲突的话也需要输入命令行等等的操作。而如果安装Maven Helper插件就可免去命令行困扰。通过界面即可操作完成。 ? All Dependencies as List(列表形式查看所有依赖) 3. All Dependencies as Tree(树形式查看所有依赖) 下图是项目文件pom.xml在Dependency Analyzer视图中的显示: ? 点个在看少个 bug

    13.8K30发布于 2021-03-05
  • 来自专栏前端杂货铺

    AngularJS源码分析依赖注入$injector

    当然,IoC的好处并不仅限于此,它也降低了对依赖的耦合度,不必在代码中进行引用或者传参即可操作依赖。          fn.slice(0, last); } else { assertArgFn(fn, 'fn', true); } return $inject; } annotate函数通过对入参进行针对性分析 ,若传递的是一个函数,则依赖模块作为入参传递,此时可通过序列化函数进行正则匹配,获取依赖模块的名称并存入$inject数组中返回,另外,通过函数入参传递依赖的方式在严格模式下执行会抛出异常;第二种依赖传递则是通过数组的方式 首先获取函数的所有依赖名,通过annotate方法完成之后,如果options中提供了对于名称的依赖,则使用,否则通过get方法获取依赖,最后传入函数,并将函数的执行结果返回。 注册服务(依赖)           服务不可能凭空而来,我们需要自己实现或者外部引入服务或依赖。所以,注册服务的模块也是值得深究的。

    1.7K50发布于 2018-03-15
  • 来自专栏codelang

    (二)组件治理之依赖层级分析

    1、为什么要分析依赖层级 在组件化模式的开发架构下,组件依赖是海量的,比如我们的壳工程下面的依赖就有上千个,但他们之间的引用关系是不知道的,在业务开发过程中,对于其他业务组件的调用,我们约定以 api 2、分析依赖层级带来的好处 分析依赖层级可以提前检查出哪些组件有不合规的引用情况,并且,在整个层级上可以看到哪块业务组件使用的频率高,哪些组件在调用自己的业务组件,以便在改造自己业务组件时提前预估影响面 3、如何分析依赖层级 方案一:通过依赖 pom 分析 在业务开发过程中, 我们会将需要的子依赖添加到 dependencies 中,在发布组件时,可以将子依赖也打入 pom,这时,就可以通过分析组件 方案二:通过字节码分析 通过字节码分析组件的 class 文件引用情况,如果有引导到外部的类、字段、方法等,就记录他们之间的依赖关系。该方案的优点通过字节码分析出来的引用是真实引用。 4、字节码分析效果图 以下是通过字节码插件分析 group 为 androidx.activity 依赖的引用关系: 5、组件引用边界处理 在上面我们有提到业务组件依赖了其他业务的实现模块,这种能不能在业务开发阶段就发现呢

    50840编辑于 2023-11-20
  • 来自专栏Devops专栏

    4-SpringBoot 起步依赖原理分析

    4-SpringBoot 起步依赖原理分析 SpringBoot 起步依赖原理分析 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。 分析 pom.xml 中的父工程依赖 spring-boot-starter-parent “在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本 分析 pom.xml 中依赖的 spring-boot-starter-web 看完了两个启动依赖,我们就知道 springboot 将需要依赖全部打包,提供我们快捷使用,不需要我们逐个去考虑版本进行编写

    38730编辑于 2022-03-23
  • 来自专栏iSharkFly

    IntelliJ IDEA Maven 项目的依赖分析

    选择 Maven 项目中的分析依赖。随后,IntelliJ IDEA 将会打开一个依赖分析的标签页。在这个标签页中,我们可以看到我们项目中导入的依赖有哪些冲突,并且这些冲突是怎么冲突的。 如上图中,带有感叹号的就是有冲突的依赖。这个时候,我们可以选择过滤只看有冲突的包。同时,我们还可以知道有冲突的包是怎么引入的,是那几个包的引入导致了冲突。总结不是所有的冲突都能够被解决的。

    64430编辑于 2023-10-12
  • 来自专栏前端开发面经

    Vue响应式依赖收集原理分析

    * observer 会转化对象的属性值的 getter/setters 方法收集依赖和派发更新。 它会为 objkey 创建一个依赖类 dep(会帮这个key 定义一个 id 和 subs(watcher 订阅者列表) 方便依赖收集)然后再利用 Object.defineProperty 对对象的 watcher.addDep(this) 向观察者中添加自己这个依赖。 Watcher 的原型方法中和依赖收集相关的方法有 get() addDep() cleanupDep()等。 何时触发依赖收集?

    94780编辑于 2022-12-12
  • 来自专栏cnblogs

    knockout源码分析之computed(依赖属性)

    一、序列图 二、主要代码文件 1、dependentObservable.js:主要包含ko.computed相关方法的处理 2、dependencyDetection.js:主要包含依赖的监控上下文对象 fName'), this.lName= ko.observable('lName'), this.name= ko.computed(function () { //监控依赖对象 ,并添加到依赖监控上下文中 var isInitial = state.pure ? debugger; // Read ko.dependencyDetection.registerDependency(observable); //执行依赖 他主要实现的是一个异步锁,让callbcak处于锁的状态执行 ignore: function (callback, callbackTarget, callbackArgs) { //按顺序s执行依赖

    1.1K50发布于 2018-01-17
  • 来自专栏程序随笔

    3. abp依赖注入的分析.md

    abp依赖注入的原理剖析 请先移步参考 [Abp vNext 源码分析] - 3. 依赖注入与拦截器 本文此篇文章的补充和完善。 abp的依赖注入最后是通过IConventionalRegister接口的AddType方法实现的。 默认情况下,实现类本身会注入到服务类型列表中,从源码中可以分析到: if (IncludeSelf ! 如此的好处是,可以获取到类的实例,减少了直接实例化而带来依赖。 三种注入方式的实现: ExposeServices特性的注入分析 // 接口 public interface IMessageWriter { void Write(); } // 实现

    48930编辑于 2023-10-19
  • 来自专栏https://blog.csdn.net/xia

    SpringBoot依赖原理分析及配置文件

    前言​ 友友们大家好,我是你们的小王同学 今天给大家打来的是 SpringBoot依赖原理分析及配置文件 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优顶配的技术版本 在各种starter中定义了该功能需要的坐标合集,其中大部分版本信息来自父工程 我们的工程继承parent,引入starter后,通过依赖传递 它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。

    61140编辑于 2023-02-16
  • 来自专栏白帽子安全笔记

    软件成分分析依赖安全检查

    软件成分分析 主要是用于扫描许可证、版权、URL、电子邮件、包信息和文件信息,简要介绍下 scancode -clipeu --json output.json samples 使用可视化导入扫描结果 依赖安全检查 OWASP 依赖性检查是一种软件SCA分析工具,可检测应用程序依赖性中公开披露的漏洞。 它会自动下载NVD数据库,并扫描指定目录,在当前目录输出默认的html报告。 扫描完毕 查看结果报告 简单介绍下结果: 依赖性检查版本:9.0.9 报告生成时间:2024 年 1 月 19 日星期五 14:31:08 +0800 扫描的依赖项:85(81 个唯一) 易受攻击的依赖

    30510编辑于 2024-10-28
  • 来自专栏韩曙亮的移动开发专栏

    【Android Gradle 插件】Android 依赖管理 ③ ( dependencies 依赖配置 | Project#dependencies 函数分析 | 自定义依赖配置 )

    文章目录 一、dependencies 依赖配置范围 二、Project#dependencies 函数分析 三、DependencyHandler#add 函数分析 四、自定义依赖配置 一、dependencies 依赖配置范围 ---- Gradle 构建过程 中 , 依赖的 作用范围 是不同的 , 如 : 有的依赖只在 源码编译时使用 , 如 Android Gradle 插件 依赖 ; 有的依赖只在 开发时单元测试运行 , 如 单元测试依赖 ; 有的依赖需要 编译打包到 Apk 文件中 , 如 工程中的依赖库 ; 依赖配置 的 作用范围 是可以自定义的 , 在 Gradle 构建工具中 , 内置了如下几种依赖配置项 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } 二、Project#dependencies 函数分析 */ void dependencies(Closure configureClosure); 三、DependencyHandler#add 函数分析 ---- dependencies 脚本块中的

    1.5K10编辑于 2023-03-30
领券