Maven在具有相同pom配置的不同系统上表现不同

时间:2018-05-10 11:43:14

标签: java maven cassandra spark-cassandra-connector

我正与我的朋友一起开展项目,其中有许多模块需要很多依赖项。

Scenario is like this :- 

我正在为apache_cassandra和spark_cassandra_connector使用数据传输驱动程序,这需要不同版本的io.netty模块。

spark_cassandra_connector需要我已经在我的项目中使用的cassandra-driver-core。

第一个问题来自我朋友的笔记本电脑,这是一些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-core

<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的事情,或者是否有任何机构知道为什么它正在发生我正在使用的版本具有该方法。

为什么其他系统没有获取该版本或覆盖spark模块使用的其他版本。

我已经在详细检查了两个系统上的依赖树,显示了相同的输出(如果maven在其他系统上拾取另一个版本,但也不是这种情况)

我尝试清理其他系统上的.m2文件夹,但也没有。

可以解决什么问题?

0 个答案:

没有答案