在Gradle中如何显示和分析buildscript依赖项(例如插件)的简单方法

介绍

这是我的Gradle技巧迷你系列的第三部分,该系列与可视化和依赖性分析有关。 在第一篇文章中,我介绍了一种如何显示多项目构建中所有子项目的依赖关系的方法。 在第二篇文章中,我展示了一种可用于跟踪项目中未预期的传递依赖项的技术。 这次较少使用的东西,但是在特定情况下至关重要–构建脚本依赖项。

实际用例

Buildscript依赖项包含我们项目中使用的插件及其依赖项。 除非您是Gradle插件开发人员,否则这似乎没什么意思,但这并不是完全正确的。 曾经,作为一名顾问,我正在一个大型项目中研究与NoSuchMethodException有关的问题,该项目具有在Gradle之上构建的自定义构建框架。 仅当一个无辜的,非常流行的开源插件已添加到该项目中时,才发生该问题。 同一插件在该公司的许多其他项目中都可以正常工作。 最后,我能够找出buildSrc自定义脚本中使用的依赖项之一,从插件覆盖旧版本中的相同依赖项。 结果,插件在运行时失败,并提到了NoSuchMethodException 。 为了实现这一点,我不得不使用自定义脚本,因为在使用./gradlew dependencies./gradlew dependencyInsight时,完全忽略了buildscript / classpath依赖项。

写这篇文章的想法是在2015年初提出的。我想展示我的Gradle小型任务,该任务使用一些内部Gradle机制检索buildscript依赖项并将其显示在控制台上。 该帖子被推迟了,将近一年后,我对Gradle 2.10的发行说明感到惊讶。 添加了新的buildEnvironment任务。

$ ./gradlew buildEnvironment
:buildEnvironment------------------------------------------------------------
Root project
------------------------------------------------------------classpath
+--- com.bmuschko:gradle-nexus-plugin:2.3
\--- io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3\--- org.codehaus.groovy.modules.http-builder:http-builder:0.7.1+--- org.apache.httpcomponents:httpclient:4.2.1|    +--- org.apache.httpcomponents:httpcore:4.2.1|    +--- commons-logging:commons-logging:1.1.1|    \--- commons-codec:commons-codec:1.6+--- net.sf.json-lib:json-lib:2.3|    +--- commons-beanutils:commons-beanutils:1.8.0|    |    \--- commons-logging:commons-logging:1.1.1|    +--- commons-collections:commons-collections:3.2.1|    +--- commons-lang:commons-lang:2.4|    +--- commons-logging:commons-logging:1.1.1|    \--- net.sf.ezmorph:ezmorph:1.0.6|         \--- commons-lang:commons-lang:2.3 -> 2.4+--- net.sourceforge.nekohtml:nekohtml:1.9.16\--- xml-resolver:xml-resolver:1.2(*) - dependencies omitted (listed previously)BUILD SUCCESSFULTotal time: 1.38 secs

两个插件和传递的依赖关系到包gradle这个-关系分期-插件由于HTTP建设者(也许这将是很好的,取而代之的是Jodd ?)。

摘要

能够区分标准项目依赖关系和buildscript依赖关系是值得的。 新的buildEnvironment任务有助于处理后者。 当奇怪的运行时错误开始出现时,这又变得至关重要。

经过Gradle 2.10测试。

翻译自: https://www.javacodegeeks.com/2016/06/gradle-tricks-display-buildscript-dependencies.html

Gradle技巧–显示buildscript依赖项相关推荐

  1. Gradle技巧–显示buildscript依赖性

    在Gradle中如何显示和分析buildscript依赖项(例如插件)的简单方法 介绍 这是我的Gradle技巧迷你系列的第三部分,该系列与可视化和依赖性分析有关. 在第一篇文章中,我介绍了如何显示多 ...

  2. gradle排除依赖_如何从Gradle中的所有依赖项中排除库

    gradle排除依赖 我正在使用Spring Boot. 默认情况下,Spring Boot带有Logback. 我想使用log4j(出于任何原因..) 为了做到这一点,我不得不排除logback并添 ...

  3. 让开发自动化: 利用 Ivy 管理依赖项

    http://www.ibm.com/developerworks/cn/java/j-ap05068/index.html 实际上,所有软件开发项目都必须依靠来自其他项目的源代码.例如,许多项目可能 ...

  4. abortonerror_java-更新Gradle依赖项后生成错误.嫌疑犯#1是...

    我有一个构建良好的应用程序,但是当我尝试更新某些Gradle依赖项时就开始失败,而主要的怀疑对象是firebase. 这是我得到的错误: Caused by: com.android.builder. ...

  5. 如何在Gradle多项目构建中管理依赖项

    从很早以前我就一直喜欢Gradle构建工具. 它的潜力甚至在1.0版本之前就已经很明显了,那时变化经常被打破. 如今,升级很少会引起意外. 该工具已经成熟并且运行良好. Gradle包括一个功能强大的 ...

  6. 如何强制gradle重新下载依赖项?

    本文翻译自:How can I force gradle to redownload dependencies? 如何告诉gradle从存储库重新下载依赖项? #1楼 参考:https://stack ...

  7. everythingtoolbar.dll”或它的一个依赖项。_ASP.NET Core依赖注入最佳实践、提示和技巧...

    译者前言 本文译自ABP框架的开发博客<ASP.NET Core Dependency Injection Best Practices, Tips & Tricks>一文(原作者 ...

  8. Gradle 依赖项管理

    2019独角兽企业重金招聘Python工程师标准>>> defaultTasks "hello"configurations {starling//不进行依赖传递 ...

  9. Gradle中的buildScript代码块

    在编写Gradle脚本的时候,在build.gradle文件中经常看到这样的代码: build.gradle 1 2 3 4 5 6 7 8 9 buildScript { repositories ...

最新文章

  1. Vuex 的应用场景
  2. xampps开启mysql_xampps mysql无法启动
  3. linux双屏显示不同内容,LINUX下双屏显示问题
  4. oracle管理员是sys吗,Oracle管理员sys,system登录无权限的坑
  5. C# Console.ReadLine()方法的使用 以及利用其返回值null终止输入
  6. APACHE的简单应用一
  7. 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
  8. Eclipse或者MyEclipse—在Eclipse或MyEclipse中的操作(2)
  9. EDEM 2020的安装
  10. 手机系统ROM开发中的电话号码格式客制化
  11. 为什么YUV全为0的图像是绿色的
  12. 使用eclipse遇到问题:the-package-collides-with-a-type
  13. Windows远程桌面连接报错【无法连接到远程计算机】
  14. android bugreport 解析
  15. 1.4 CNN的崛起
  16. [转]深入理解RunLoop
  17. 2022年新高考1卷17题解析
  18. 了解僵尸网络攻击:什么是僵尸网络,它如何传播恶意软件以及如何保护自己?
  19. control-M 入门
  20. 二、NovAtel Connect 1.80 版本 操作说明书

热门文章

  1. SSL / TLS 协议运行机制详解
  2. java 程序实现对图片的压缩生成缩略图并可设定长宽、尺寸压缩率、图片质量
  3. Java码农必须掌握的循环删除List元素的正确方法
  4. methods中axios里的数据无法渲染到页面
  5. java中随机生成26个字母组合的随机验证码
  6. 第1步 新建spring+springmvc+mybatis项目 每步都有 讲解 巨详细
  7. python弹出窗口 闪烁_Python。得到闪烁/闪烁的窗口
  8. php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)
  9. java oca_OCA第2部分中的Java难题
  10. rails jquery_Spring与Rails的jQuery UJS