Estou tentando encontrar uma maneira “genérica” de excluir uma dependência transitiva de ser incluída sem ter que excluí-la de todas as dependências que dependem dela. Por exemplo, se eu quiser excluir slf4j, faço o seguinte:
<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>
Isso é parcialmente para limpar o arquivo pom, parcialmente para evitar problemas no futuro com pessoas adicionando dependências que dependem dessa dependência excluída - e esquecendo-se de excluí-la.
Há algum caminho?