Java Maven在具有相同pom配置的不同系统上表现不同
我正在和我的朋友一起做一个项目,其中有很多模块需要的依赖项Java Maven在具有相同pom配置的不同系统上表现不同,java,maven,cassandra,spark-cassandra-connector,Java,Maven,Cassandra,Spark Cassandra Connector,我正在和我的朋友一起做一个项目,其中有很多模块需要的依赖项 Scenario is like this :- 我正在为apache_cassandra和spark_cassandra_连接器使用datastax驱动程序,这需要不同版本的io.netty模块 spark_cassandra_连接器需要cassandra驱动核心,我已经在我的项目中使用了 第一个问题出现在我朋友的笔记本电脑上,这是一个棘手的epoll错误,它没有找到任何方法,尽管我的工作正常,没有任何错误。(相同的pom.xml
Scenario is like this :-
我正在为apache_cassandra和spark_cassandra_连接器使用datastax驱动程序,这需要不同版本的io.netty模块
spark_cassandra_连接器需要cassandra驱动核心,我已经在我的项目中使用了
第一个问题出现在我朋友的笔记本电脑上,这是一个棘手的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>
伊奥·内蒂
讨厌的
${netty.version}
伊奥·内蒂
netty传输本地epoll
${netty.version}
这个问题已经解决了
现在,在我朋友的笔记本电脑上,同样的方法“未发现”错误也在发生。所以我们决定在全球范围内使用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>
伊奥·内蒂
讨厌的
${netty.version}
伊奥·内蒂
内蒂-
${netty.version}
com.datasax.cassandra
卡桑德拉驱动核心
${cassandra driver.version}
com.datasax.cassandra
卡桑德拉额外驾驶员
${cassandra driver.version}
com.datasax.cassandra
卡桑德拉驱动映射
${cassandra driver.version}
这是行不通的
我已尝试从火花连接器中排除cassandra驱动核心
<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>
com.datasax.spark
spark-cassandra-connector-java_2.10
${spark.version}
com.datasax.cassandra
卡桑德拉驱动核心
com.datasax.cassandra
卡桑德拉驱动映射
com.datasax.spark
spark-cassandra-connector_2.10
${spark.version}
com.datasax.cassandra
卡桑德拉驱动核心
这也不起作用,这个问题发生在朋友系统上,不是我的
关于maven有什么我需要知道的吗?或者有人知道为什么会这样吗?我使用的版本有那个方法
为什么其他系统不接收该版本或覆盖spark模块使用的其他版本
我在verbose中检查了这两个系统上的依赖关系树,它显示了相同的输出(以防maven在其他系统上获取另一个版本,但情况并非如此)
我尝试过清理其他系统上的.m2文件夹,但也不起作用
解决方案是什么???您是否使用相同版本的Maven,构建中的所有插件都是相同的…使用相同的JDK版本?此外,您是否通过
mvn dependency:tree
检查并比较了结果?尝试比较两个节点上的有效pommvn帮助:有效pom
您中的一个可能有受污染的本地存储库。尝试删除主目录中的.m2/repository
,然后重新生成(可能会下载半个世界)。受“污染”的本地缓存决不会导致问题,否则项目会出现错误行为…是的,两个系统中的版本相同