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

gradle排除依赖

我正在使用Spring Boot。 默认情况下,Spring Boot带有Logback。 我想使用log4j(出于任何原因..)

为了做到这一点,我不得不排除logback并添加新的log4j依赖项:

在此软件包中“隐藏”了logback:

compile("org.springframework.boot:spring-boot-starter:$project.ext.springBootVersion"){exclude module: 'org.springframework.boot:spring-boot-starter-logging'
}compile("org.springframework.boot:spring-boot-starter-log4j:$project.ext.springBatchVersion")

现在,当您尝试运行应用程序时,会出现以下异常:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/dev/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.10/b3eeae7d1765f988a1f45ea81517191315c69c9e/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/dev/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.1.2/b316e9737eea25e9ddd6d88eaeee76878045c6b2/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

现在,我们必须查看Gradle的依赖关系树,以查看隐藏了logback的位置以消除它。

查看gradle依赖关系树的简单命令:

gradle -q dependencies web:dependencies --configuration compile

* web代表您的模块名称。

输出的快照视图:

Project :web - web------------------------------------------------------------compile - Compile classpath for source set 'main'.+--- org.springframework.boot:spring-boot-starter-actuator:1.2.2.RELEASE| +--- org.springframework.boot:spring-boot-starter:1.2.2.RELEASE| | +--- org.springframework.boot:spring-boot:1.2.2.RELEASE| | | +--- org.springframework:spring-core:4.1.5.RELEASE| | | | \--- commons-logging:commons-logging:1.2| | | \--- org.springframework:spring-context:4.1.5.RELEASE| | | +--- org.springframework:spring-aop:4.1.5.RELEASE| | | | +--- aopalliance:aopalliance:1.0| | | | +--- org.springframework:spring-beans:4.1.5.RELEASE| | | | | \--- org.springframework:spring-core:4.1.5.RELEASE (*)| | | | \--- org.springframework:spring-core:4.1.5.RELEASE (*)| | | +--- org.springframework:spring-beans:4.1.5.RELEASE (*)| | | +--- org.springframework:spring-core:4.1.5.RELEASE (*)| | | \--- org.springframework:spring-expression:4.1.5.RELEASE| | | \--- org.springframework:spring-core:4.1.5.RELEASE (*)| | +--- org.springframework.boot:spring-boot-autoconfigure:1.2.2.RELEASE| | | +--- org.springframework.boot:spring-boot:1.2.2.RELEASE (*)| | | \--- org.yaml:snakeyaml:1.14| | +--- org.springframework.boot:spring-boot-starter-logging:1.2.2.RELEASE| | | +--- org.slf4j:jcl-over-slf4j:1.7.10| | | | \--- org.slf4j:slf4j-api:1.7.10| | | +--- org.slf4j:jul-to-slf4j:1.7.10| | | | \--- org.slf4j:slf4j-api:1.7.10| | | +--- org.slf4j:log4j-over-slf4j:1.7.10| | | | \--- org.slf4j:slf4j-api:1.7.10| | | \--- mycompany:logback-classic:1.1.2| | | +--- mycompany:logback-core:1.1.2| | | \--- org.slf4j:slf4j-api:1.7.6 -> 1.7.10| | +--- org.springframework:spring-core:4.1.5.RELEASE (*)| | \--- org.yaml:snakeyaml:1.14| +--- org.springframework.boot:spring-boot-actuator:1.2.2.RELEASE

我们可以从我们的一个依赖项中找到一个弹出的logback实例:

mycompany:logback-core:1.1.2

(我发现logback show在其他依赖项中)。

现在我们有两个选择:

  1. 在Indecency树中排除每个Logback的路由
  2. 使用配置范围内的排除(更简便的方法)

因此,转到您的build.gradle并添加以下内容:

configurations {compile.exclude group:'ch.qos.logback'
}

而已。 你的噩梦结束了。 如果再次检查依赖关系树,您将不再看到任何logback。

翻译自: https://www.javacodegeeks.com/2015/03/how-to-exclude-libraries-from-all-dependencies-in-gradle.html

gradle排除依赖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337725.shtml

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

相关文章

android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...

Android ActionBar搜索功能用法详解本文实例讲述了Android ActionBar搜索功能用法。分享给大家供大家参考,具体如下:使用ActionBar SearchView时的注意点:首先要吐槽一下Android的官方Guide文档 ,关于用法讲得不明确,可…

javaone_JavaOne 2015 –提交技巧和建议

javaone大家都知道JavaOne 。 感觉就像一直存在。 而且,即使我们跌宕起伏,而地理位置也不是我们想要的那样,旧金山也很昂贵,而且和。 这是有关各种Java的顶级会议。 今年又再次成为程序委员会(“ Java,DevO…

C语言_结构体总结,附实例源码

点击蓝字关注我们当前文章介绍动态堆空间内存分配与释放,C语言结构体定义、初始化、赋值、结构体数组、结构体指针的相关知识点,最后通过一个学生管理系统综合练习结构体数组的使用。1. 动态内存管理C语言代码----->编译----->链接------>可执行…

android webview file,Android WebView 不支持 H5 input type=file 解决方法

最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中。发现点击H5中 input type"file" 标签 不能打开android资源管理器。通过网络搜索发现是因为 android webview 由于考虑安全原因屏蔽了 input type"file&…

maven 常量字符串过长_从基于Maven的Web应用程序获取版本字符串

maven 常量字符串过长打包maven项目时,它将自动在其中生成pom.properties文件,其中将包含版本,artifactId和groupId信息。 这些在运行时很方便拥有并显示给您的Web应用程序。 可以使用如下方法检索它。 public class Application {private S…

四大C语言知识总结

点击蓝字关注我们1、#define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并…

android 5.0新增 ui 控件,android3.0新增ui控件示例说明.doc

android3.0新增ui控件示例说明Android3.0新增UI控件AdapterViewAnimator控件AdapterViewAnimator(堆View),已知子类有AdapterViewFlipper, StackView,是一系列View的集合,这些View叠加一起,并且View之间可以进行切换,并…

jdbc select语句_SELECT语句使用JDBC和Hibernate批量获取

jdbc select语句介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了。 JDBC ResultSet提供了一个客户端Proxy游标,用于获取当前语句的返回数据。 执行该语句后&…

看懂开源项目,你得熟悉这几个 C++11 新特性

点击蓝字关注我们C11 中增加了许多的新特性。在本文中,我们来聊一下 lambda 表达式,闭包,std::function以及std::bind。lambda 表达式C11 中新增了 lambda 表达式这一语言特性。lambda 表达式可以让我们快速和便捷的创建一个 “函数”。下面是…

5元素升级android6,【五元素ifive X.7】无障碍升级,ifveX详细升级固件教程,快为爱机升级吧。...

android系统的乐趣就是可以随意的刷机,所以拿到如此高配置的ifiveX也是想随时体验最新的android系统。而很多朋友可能只会用设备,刷机这种比较技术性的动作就不太会弄了。也就在这周,才帮同事刷RUU把已经无法启动的G12刷了回来。所以刷机还是…

昆仑通态复制的程序可以用吗_昆仑通态专题(七):MCGS组态软件的设备窗口...

点击上方蓝色字体,关注我们设备窗口是MCGS嵌入版组态软件系统的重要组成部分,在设备窗口中建立系统与外部硬件设备的连接关系,使系统能够从外部设备读取数据并控制外部设备的工作状态,实现对工业过程设备的实时监控与操作。01 设备…

spicy命令_Spicy Spring:动态创建自己的BeanDefinition

spicy命令当我们拥有Spring托管的应用程序时,我们想让Spring管理所有的bean。 除了使用已知解决方案(例如带注释的bean,Java配置和XML配置)创建bean的常规方法之外,还有一种方法可以用来创建自己的BeanDefinition 。 …

设置数字范围的html语言,JavaScript奇技淫巧44招【实用】

JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino…

嵌入式C语言程序调试和宏使用的技巧

点击蓝字关注我们01.调试相关的宏在Linux使用gcc编译程序的时候,对于调试的语句还具有一些特殊的语法。gcc编译的过程中,会生成一些宏,可以使用这些宏分别打印当前源文件的信息,主要内容是当前的文件、当前运行的函数和当前的程序…

matlab中欠定方程组超定方程组_《数值天气预报》:球坐标系中的基本方程组

人们是如何预报天气的?目前的预报方法主要有两种:一种是基于由各种探测资料绘制的天气图,结合历史资料进行分析预测;另一种是基于大气方程组,利用数值解法对其进行求解,从而得到未来时刻的大气状态。后者就…

浏览器总是跳转到缓存界面_跳转到企业缓存之前要考虑的事项

浏览器总是跳转到缓存界面介绍 关系数据库事务是ACID ,强大的一致性模型简化了应用程序开发。 由于启用Hibernate缓存是一项配置 ,因此,只要数据访问层开始出现性能问题,就转向缓存非常吸引人。 添加缓存层确实可以提高应用程序性…

html标签转换日期格式,input标签的type为date,显示的日期格式样式更改

这个///是改不了---的,这是谷哥自带的功能样式,只能改颜色背景色等,如果要那种效果可以用日历插件有个取巧的方法,一个不能改的input覆盖在input type"date"上面*{margin: 0;padding: 0;}#div{width: 500px;height: 300…

CryptoTab 服务器_如何架设FTP服务器,如何架设FTP服务器,具体架设方法

FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务。 FTP的全称是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。那么&#xf…

C语言和C++的区别和联系

点击蓝字关注我们C语言和C到底是什么关系?首先C和C语言本来就是两种不同的编程语言,但C确实是对C语言的扩充和延伸,并且对C语言提供后向兼容的能力。对于有些人说的C完全就包含了C语言的说法也并没有错。C一开始被本贾尼斯特劳斯特卢普&#…

hibernate语句_如何优化Hibernate EllementCollection语句

hibernate语句介绍 Hibernate支持三种数据映射类型 : 基本 (例如String,int), Embeddable和Entity 。 通常,数据库行被映射到Entity ,每个数据库列都与一个基本属性相关联。 当将多个字段映射组…