Я работаю над проектом с моими друзьями, в котором есть много зависимостей, которые требуются для большого количества модулей.
Scenario is like this :-
Я использую драйверы datastax для apache_cassandra и spark_cassandra_connector, для которых требуются разные версии io.netty modules.
spark_cassandra_connector требуется ядро cassandra-driver, которое я уже использую в своем проекте.
Первая проблема возникла на ноутбуке моего друга, это была ошибка netty-epoll, из-за которой не удалось найти какой-либо метод, хотя мой работал без ошибок. (Тот же pom.xml)
Послеработая с ошибкой, мы обнаружили, что существуют разные версии io.netty, которые использовались зависимостями проекта, которые могут вызывать ошибку.
, поэтому мы использовали глобальную версию модулей io.netty, а именно: -
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>${netty.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
Эта проблема была исправлена.
Теперь в ноутбуке моих друзей с cassandra-driver-core происходит ошибка того же метода, но не найдена.поэтому мы решили использовать драйверы cassandra во всем мире, а именно: -
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>${cassandra-driver.version}</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-extras</artifactId>
<version>${cassandra-driver.version}</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>${cassandra-driver.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
, который не работает.
Я пытался исключить ядро cassandra-driver из разъемов свечей
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.10</artifactId>
<version>${spark.version}</version>
<exclusions>
<exclusion>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>${spark.version}</version>
<exclusions>
<exclusion>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
</exclusion>
</exclusions>
</dependency>
, который также не работал, и эта проблема возникает в системе друзей, а не в моей.
Есть ли что-то, что мне нужно знать о Maven, или кто-нибудь знает, почему это происходит, версия, которую я использую, имеетэтот метод.
почему другая система не выбирает эту версию или не переопределяет другую версию, используемую модулем свечи.
Я подробно проверил дерево зависимостей в обеих системах, которое показывает один и тот же вывод(в случае, если maven выбирает другую версию в другой системе, но это не так)
я попытался очистить папку .m2 в другой системе, которая также не работала.
чтоможет быть решение ??