私の実際の状況で質問を説明します。
ロギングに logback 1.0.1 を使用しています。依存関係として SLF4J 1.6.4 が含まれています。また、明示的な依存関係ではないレガシー ロギング API (java.util.logging、log4j、および commons-logging) に SLF4J API ブリッジを使用します。これらも (できれば) バージョン 1.6.4 である必要があります。
私の pom.xml をできるだけきちんとしてエラーのないようにしようとして、これらの API ブリッジが SLF4J と同じバージョンであることを強制したいと思います。私が知っている唯一の方法は、バージョン 1.6.4 を使用して、pom.xml でそれらを依存関係として手動で定義することです。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>