Перекрывающиеся классы плагинов Maven и плагин зависимостей пропущены для конфликта - PullRequest
0 голосов
/ 01 июня 2018

Я использую плагин Maven Shade и получаю вывод, подобный следующему: mvn package:

[WARNING] kryo-4.0.0.jar, kryo-2.21.jar define 91 overlapping classes:

, за которым следует:

[WARNING] maven-shade-plugin has detected that some class files are
[WARNING] present in two or more JARs.
[WARNING] single version of the class is copied to the uber jar.
[WARNING] Usually this is not harmful and you can skip these warnings,
[WARNING] otherwise try to manually exclude artifacts based on
[WARNING] mvn dependency:tree -Ddetail=true and the above output.

С другой стороны,Есть много других банок, для которых я ожидал бы получить такие предупреждения, но я не получаю.В частности, если я делаю mvn dependency:tree -Dverbose, я получаю много выходных данных, таких как:

[INFO] |  |  +- (org.apache.commons:commons-lang3:jar:3.3.2:compile - omitted for conflict with 3.5)

Мой вопрос: почему некоторые случаи дублирующих классов приводят только к предупреждениям "перекрывающихся классов", тогда как другиеслучаи приводят только к информационным сообщениям "пропущено для конфликта"?

1 Ответ

0 голосов
/ 01 июня 2018

Идентификатор группы kryo изменен с версии 2.x на 3.x.Это означает, что технически kryo 4.0.0 и kryo 2.21 являются разными артефактами для Maven.Посредничество между зависимостями не происходит, они просто помещаются в путь к классам.Вот почему плагин Shade жалуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...