Sto cercando di trovare un modo "generico" di escludere una dipendenza transitiva dall'essere inclusa senza doverla escludere da tutte le dipendenze che dipendono da essa. Ad esempio, se voglio escludere slf4j, faccio la seguente:Esiste un modo per escludere una dipendenza Maven a livello globale?
<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>
Ciò è in parte di ripulire il file POM, in parte per evitare problemi in futuro con le persone aggiungendo le dipendenze che dipendono da che la dipendenza esclusa - e dimenticando di escluderlo.
C'è un modo?
non risolve il problema, ma Maven-enforcer-plugin ha un [dipendenze vietato caratteristica] (https://maven.apache.org/ enforcer/enforcer-rules/bannedDependencies.html) che fallirà la compilazione se le dipendenze indesiderate si intrufoleranno. Devi comunque escluderle manualmente, però: -/ – dnault
Una risposta alternativa è disponibile qui: http://stackoverflow.com/a/39979760/363573 – Stephan