gradle - Gradle 使用 SLF4J simple 进行测试,使用 Log4j12 进行运行时
问题描述
我在测试期间使用 slf4j 我想通过使用 slf4j simple 在控制台上查看日志输出。然后运行时将使用 log4j 配置。
通过像这样声明依赖项,我能够在 Maven 中做到这一点
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
我尝试为 Gradle 做类似的事情
dependencies {
compile "org.slf4j:slf4j-api:$SLF4J_VERSION"
testCompile "org.slf4j:slf4j-simple:$SLF4J_VERSION"
runtime "org.slf4j:slf4j-log4j12:$SLF4J_VERSION"
}
但是在构建过程中,我可以看到它仍在使用 Log4j12 实现。我该如何解决?
SLF4J: Class path contains multiple SLF4J providers.
SLF4J: Found provider [org.slf4j.log4j12.Log4j12ServiceProvider@4ad9cc78]
SLF4J: Found provider [org.slf4j.simple.SimpleServiceProvider@6e869e5e]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual provider is of type [org.slf4j.log4j12.Log4j12ServiceProvider@4ad9cc78]
解决方案
你可以试试
gradle dependencies --configuration testRuntime
看看它来自哪里
推荐阅读
- ansible - 如何将参数从 Ansible Tower Survey 而不是配置文件传递给清单脚本
- reactjs - 和设计表 TypeScript getColumnSearchProps 示例
- c# - Microsoft Bot Framework .Net 中的 Directline API 和 OAuth2 有什么区别?
- laravel - Amcharts 自定义可变颜色
- amazon-web-services - 如何预测 Fargate 容器的 IP 范围
- r - 如何在r中的线性回归中制作“期望值线”
- javascript - 无法从输入字段 daterangepicker 传递值 - Zeppelin Angular
- javascript - Nodejs 订阅按钮将我重定向到 127.0.0.1
- python - Pyinstaller 不适用于图像显示 python 应用程序?我究竟做错了什么?
- rxjs - 为什么在范围运算符中使用 asyncScheduler 关键字会推迟订阅?