Maven ведет себя по-разному в другой системе с одинаковой конфигурацией POM - PullRequest
0 голосов
/ 10 мая 2018

Я работаю над проектом с моими друзьями, в котором есть много зависимостей, которые требуются для большого количества модулей.

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 в другой системе, которая также не работала.

чтоможет быть решение ??

...