Estoy tratando de encontrar una forma "genérica" de excluir una dependencia transitiva para que no se incluya sin tener que excluirla de todas las dependencias que dependen de ella. Por ejemplo, si quiero excluir slf4j, hago lo siguiente:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jmx</artifactId>
<version>3.3.2.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Esto es en parte para limpiar el archivo pom, en parte para evitar problemas en el futuro con personas que agregan dependencias que dependen de esa dependencia excluida y se olvidan de excluirla.
¿Hay alguna manera?