Próbuję znaleźć "ogólny" sposób wykluczenia przechodniowej zależności od bycia włączonym bez konieczności wykluczania go ze wszystkich zależnych od niego zależności. Na przykład, jeśli chcę, aby wykluczyć slf4j, mam następujące:Czy istnieje sposób na globalne wykluczenie zależności Maven?
<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>
Jest to częściowo oczyścić plik POM, częściowo aby uniknąć problemów w przyszłości z osobami dodanie zależności, które zależą od tego wykluczyć uzależnienia - i zapominając o wykluczeniu go.
Czy istnieje sposób?
nie rozwiązuje problemu, ale Maven-egzekutor-plugin ma A [zakazane zależności funkcji] (https://maven.apache.org/ enforcer/enforcer-rules/bannedDependencies.html), które zawiedzie budowanie, jeśli wkradną się niechciane zależności. Nadal musisz je ręcznie wykluczyć, jednak: -/ – dnault
Alternatywna odpowiedź jest dostępna tutaj: http://stackoverflow.com/a/39979760/363573 – Stephan