我正在开发一个可以在许多项目中使用的库(JAR)。我正在使用SLF4j进行日志记录,因此我已将SLF4J API JAR声明为编译 configuration。
当我在我的机器上本地开发这个库时,我想运行测试并查看所有SLF4J日志语句的输出。或者,在测试之外,有助于向随机类添加临时main(String[])
方法并测试功能和日志输出,就像lib是可执行JAR一样。由于SLF4J的默认绑定是No-Op(无输出),到目前为止,我一直在通过添加SLF4J Simple绑定作为编译配置依赖,而我正在开发&测试。然后,在我提交和发布之前,我只是将Simple绑定作为依赖项删除(因为每个使用我的lib的开发人员都应该能够选择自己的绑定)。
这很hacky,我知道Gradle支持custom configs,但我还没有看到一个可以作为指导的连贯示例。理想情况下,我想定义一个自定义dev
配置,以便作为依赖我可以:
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
dev 'org.slf4j:slf4j-simple:1.7.5' // Only used when running/testing locally
}
...但随后我将SLF4J API JAR添加到我的pom
。 关于如何实现这一点的任何想法?也许Gradle已经内置了这样的概念,或者自定义配置甚至可能都不是正确的方法。