Ich versuche, einen Dropwizard (Jersey) REST-Endpunkt zu erstellen, der mit HBase kommuniziert. Obwohl dies meine einzigen beiden Abhängigkeiten auf oberster Ebene sind, werden beide Abhängigkeiten mit vielen transitiven Abhängigkeiten geladen, die einen Konflikt verursachen. Ein einfaches Beispiel für einen solchen Konflikt ist Guava Google:Auflösen von transitiven Abhängigkeitskonflikten in Java
- Die HBase Client gibt Version 11
- Dropwizard 18 gibt
Dropwizard nicht 11 mit Version arbeiten und HBase nicht mit Version 18 arbeiten .
Ich habe die Maven Schatten Plugin-Dokumentation untersucht, aber es scheint nicht zu erlauben, Sie Klassen in Abhängigkeitsgläsern zu verlagern. Ich weiß also nicht, wie ich dieses Problem lösen kann, ohne diese beiden Komponenten in separate JVMs aufzuteilen.
Können Sie mehr Details darüber geben, warum nicht jeder mit einer verbesserten/herabgestuften Version von Guava laufen kann? –
Die Konflikte waren sehr vielfältig, aber eine, die mich umbrachte, war 'com.google.common.base.Stopwatch', wobei zwischen den Versionen 17 und 18 die API ohne jegliche Form der Entwertung geändert wurde. –
Keine Chance, HBase zu verzweigen und die Abhängigkeit zu erhöhen ? –