У меня есть проект в зависимости от исполнения Netflix Feign и Glassfish Jersey.Могу ли я сказать, что два разных модуля зависимостей на самом деле одинаковы и позволяют выбрать тот, который имеет самую высокую версию?
Feign использует спецификацию JAX-RS (JSR 311) 1.1, а реализация черной майки использует спецификацию 2.0. 2.0 обратно совместим, но изменено имя зависимостей Gradle.
Таким образом, у меня есть два зависимостей в моем проекте:
- javax.ws.rs:jsr311-api:1.1.1
- javax.ws.rs:javax-ws-rs-api:2.0 .1
и реализует те же классы в же пакеты, но одно согласно 1.x и один в соответствии с 2.x
В моем Java-коде я могу указать только имя класса и пакет.
Могу ли я сказать Gradle, что на самом деле это тот же пакет, хотя имя отличается и таким образом получить только один набор реализующих классов в пути к классу?
В настоящее время это случайная версия классов, которую выбирают JVM и компилятор. Иногда он не компилируется, иногда компилируется, но не запускается (MethodNotFoundException).
Я не думаю, что это возможно, но вы можете явно исключить старую зависимость. –