Gradle技巧–显示buildscript依赖项
在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依赖项相关推荐
- Gradle技巧–显示buildscript依赖性
在Gradle中如何显示和分析buildscript依赖项(例如插件)的简单方法 介绍 这是我的Gradle技巧迷你系列的第三部分,该系列与可视化和依赖性分析有关. 在第一篇文章中,我介绍了如何显示多 ...
- gradle排除依赖_如何从Gradle中的所有依赖项中排除库
gradle排除依赖 我正在使用Spring Boot. 默认情况下,Spring Boot带有Logback. 我想使用log4j(出于任何原因..) 为了做到这一点,我不得不排除logback并添 ...
- 让开发自动化: 利用 Ivy 管理依赖项
http://www.ibm.com/developerworks/cn/java/j-ap05068/index.html 实际上,所有软件开发项目都必须依靠来自其他项目的源代码.例如,许多项目可能 ...
- abortonerror_java-更新Gradle依赖项后生成错误.嫌疑犯#1是...
我有一个构建良好的应用程序,但是当我尝试更新某些Gradle依赖项时就开始失败,而主要的怀疑对象是firebase. 这是我得到的错误: Caused by: com.android.builder. ...
- 如何在Gradle多项目构建中管理依赖项
从很早以前我就一直喜欢Gradle构建工具. 它的潜力甚至在1.0版本之前就已经很明显了,那时变化经常被打破. 如今,升级很少会引起意外. 该工具已经成熟并且运行良好. Gradle包括一个功能强大的 ...
- 如何强制gradle重新下载依赖项?
本文翻译自:How can I force gradle to redownload dependencies? 如何告诉gradle从存储库重新下载依赖项? #1楼 参考:https://stack ...
- everythingtoolbar.dll”或它的一个依赖项。_ASP.NET Core依赖注入最佳实践、提示和技巧...
译者前言 本文译自ABP框架的开发博客<ASP.NET Core Dependency Injection Best Practices, Tips & Tricks>一文(原作者 ...
- Gradle 依赖项管理
2019独角兽企业重金招聘Python工程师标准>>> defaultTasks "hello"configurations {starling//不进行依赖传递 ...
- Gradle中的buildScript代码块
在编写Gradle脚本的时候,在build.gradle文件中经常看到这样的代码: build.gradle 1 2 3 4 5 6 7 8 9 buildScript { repositories ...
最新文章
- Vuex 的应用场景
- xampps开启mysql_xampps mysql无法启动
- linux双屏显示不同内容,LINUX下双屏显示问题
- oracle管理员是sys吗,Oracle管理员sys,system登录无权限的坑
- C# Console.ReadLine()方法的使用 以及利用其返回值null终止输入
- APACHE的简单应用一
- 圆弧裁剪算法c++_箍筋算法之争:按外皮长度计算与按中心线长度计算究竟相差多少?...
- Eclipse或者MyEclipse—在Eclipse或MyEclipse中的操作(2)
- EDEM 2020的安装
- 手机系统ROM开发中的电话号码格式客制化
- 为什么YUV全为0的图像是绿色的
- 使用eclipse遇到问题:the-package-collides-with-a-type
- Windows远程桌面连接报错【无法连接到远程计算机】
- android bugreport 解析
- 1.4 CNN的崛起
- [转]深入理解RunLoop
- 2022年新高考1卷17题解析
- 了解僵尸网络攻击:什么是僵尸网络,它如何传播恶意软件以及如何保护自己?
- control-M 入门
- 二、NovAtel Connect 1.80 版本 操作说明书
热门文章
- SSL / TLS 协议运行机制详解
- java 程序实现对图片的压缩生成缩略图并可设定长宽、尺寸压缩率、图片质量
- Java码农必须掌握的循环删除List元素的正确方法
- methods中axios里的数据无法渲染到页面
- java中随机生成26个字母组合的随机验证码
- 第1步 新建spring+springmvc+mybatis项目 每步都有 讲解 巨详细
- python弹出窗口 闪烁_Python。得到闪烁/闪烁的窗口
- php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)
- java oca_OCA第2部分中的Java难题
- rails jquery_Spring与Rails的jQuery UJS