Maven 2 - define a versão de dependência da versão de dependência transitiva
Eu vou explicar a questão com a minha situação real.
Eu uso logback 1.0.1 para log, e inclui o SLF4J 1.6.4 como uma dependência. Eu também uso as pontes da API do SLF4J para APIs de registro herdadas (java.util.logging, log4j e commons-logging), que não são dependências explícitas. Estes também devem (preferencialmente) ser a versão 1.6.4.
Tentando tornar meu pom.xml o mais limpo e livre de erros possível, gostaria de reforçar que essas pontes de API sejam da mesma versão que o SLF4J. A única maneira que eu sei é defini-los manualmente como dependências no meu pom.xml usando a versão 1.6.4. Se eu atualizar o logback e a versão necessária do SLF4J for levantada, precisarei lembrar de alterar a API da ponte para a versão correta.
Posso de alguma forma ligar a versão da API legada à versão da dependência transitiva SLF4J?
Pom.xml atual:
<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>