我将用我的实际情况来解释这个问题。
我使用logback 1.0.1进行日志记录,它包含SLF4J 1.6.4作为依赖项。我还使用了SLF4J API桥接器来支持旧的日志API(如java.util.logging、log4j和commons-logging),这些API并不是显式的依赖项。这些桥接器也必须(最好)是版本1.6.4。
为了使我的pom.xml尽可能整洁和无错误,我想强制要求这些API桥接器与SLF4J的版本相同。我所知道的唯一方法是在我的pom.xml中手动定义它们,并使用版本1.6.4。如果我更新logback并且所需的SLF4J版本提高了,我需要记得更改桥接器API到正确的版本。
我能否以某种方式将旧的API版本与传递依赖项SLF4J的版本挂钩?
当前的pom.xml:
<properties>
<org.slf4j.version>1.6.4</org.slf4j.version>
</properties>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.1</version>
<!-- requires SLF4J 1.6.4 -->
</dependency>
<!-- ... -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${org.slf4j.version}</version>
<!-- here, how to bind this version value to SLF4J's version? -->
<scope>runtime</scope>
</dependency>
<!-- the other two bridge API's go here -->
</dependencies>