Ответ 1
Глядя на зависимости maven файла pom.xml
проекта библиотеки на github, хотя и не та же артефактная версия, вы можете видеть, что java-bitpay-client
зависит от нескольких библиотек от org.apache.httpcomponents
:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.1</version>
</dependency>
Среди них:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3</version>
</dependency>
В ваших зависимостях у вас вместо этого есть httpcore
version 4.4.5
, следовательно, существует конфликт <зависимостей , также отмеченный Jacob в комментариях и связанных аналогичный вопрос.
Через механизм посредничества Maven, ваша сборка выберет последнюю версию 4.4.5
, потому что она явно объявлена среди ваших зависимостей, поэтому во время выполнения java-bitpay-client
в пути к классам будет использоваться другая версия одной из его зависимостей, что может привести к окончательному исключению.
Возможным решением было бы удалить зависимость httpcore
от вашего dependencies
и позволить ему войти в путь к классам через транзитивные зависимости (тогда должна входить версия 4.3
).
Вы также можете подтвердить описание выше, выполнив консоль в своем проекте:
mvn dependency:tree -Dincludes=com.github.bitpay
Вы должны получить среди других транзитивных зависимостей также httpcore
.
Боковое примечание. Я вижу, что вы определили зависимость с type
со значением jar
. Вы можете опустить это, jar
является значением по умолчанию для зависимостей type
, то есть зависимостями по умолчанию являются файлы jar. От официального ссылка pom:
type
. Соответствует зависимому артефактуpackaging
. По умолчанию это значениеjar
.