Та же транзитивная зависимость, но другая версия

Я сталкиваюсь с проблемой, где у меня есть следующие 2 зависимости:

http://mvnrepository.com/artifact/org.apache.felix/org.apache.felix.utils/1.6.0

а также

http://mvnrepository.com/artifact/com.github.rotty3000/phidias/0.3.2

они оба имеют транзитивную зависимость от org.osgi.core, felix зависит от версии 4.1.0 и phidias зависит от версии 5.0.0

нам нужна версия 5.0.0 для правильной компиляции нашего кода

если я поставлю свои зависимости как:

<dependencies>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.utils</artifactId>
        <version>1.6.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.github.rotty3000</groupId>
        <artifactId>phidias</artifactId>
        <version>0.3.2</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

maven автоматически получает версию 4.1.0, вызывающую ошибку компиляции. Если я положу phidias поверх felix, он получит версию 5.0.0 и скомпилируется нормально.

мы хотим упорядочить зависимости в алфавитном порядке, чтобы felix был на вершине, есть ли способ заставить osgi.core разрешить версию 5.0.0?

Спасибо!

1 ответ

Решение

<exclude> это из обеих этих зависимостей

добавлять org.osgi.core Требуется зависимость от версии 5.0.0 в вашем pom.xml как явная зависимость от вашей требуемой версии

убедитесь, что две библиотеки, которые вы используете, совместимы во время выполнения 5.0.0

Другие вопросы по тегам