为什么我的 spark 连接器包的 maven 子依赖版本与其他版本不同
why is my maven sub dependency version for spark connector package different from others
我正在尝试使用现有项目中的 pom 文件,但出现错误“无法解析 org.yaml:snakeyaml:1.15”
关于此错误,我发现 com.datastax.spark:spark-cassandra-connector_2.11:2.5.0 使用了几个依赖项,并且向下几层使用了 snakeyaml:1.15 被公司代理隔离。有没有办法指定我想使用的给定 Maven 依赖项 snakeyaml:1.16?
我不明白的一件事是我查看了也使用 com.datastax.spark:spark-cassandra-connector_2.11:2.5.0 的参考项目,它正在使用更新的 com.datastax.oss:java-driver-core-shaded:4.9.0,不再需要 snakeyaml:1.15
其中我使用旧的 com.datastax.oss:java-driver-core-shaded:4.5.0
为什么它在那个 pom 中工作? com.datastax.spark:spark-cassandra-connector_2.11:2.5.0
我们有相同的 Maven 列表版本
我看到它有一些排除项,但 none 解决了 snake yaml 版本或其任何父依赖项。
是否有 pom 文件的另一部分可以解决我所缺少的这个问题?请指教
我的pom
<scala.compat.version>2.11</scala.compat.version>
<spark.cassandra.version>2.5.0</spark.cassandra.version>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_${scala.compat.version}</artifactId>
<version>${spark.cassandra.version}</version>
</dependency>
哪里出错了
但是另一个项目正在使用正确的阴影版本 com.datastax.oss:java-driver-core-shaded:4.9.0,它消除了蛇依赖性
工作 pom
<scala.compat.version>2.11</scala.compat.version>
<spark.cassandra.version>2.5.0</spark.cassandra.version>
<dependency>
<artifactId>spark-cassandra-connector_${scala.compat.version}</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<artifactId>netty-all</artifactId>
<groupId>io.netty</groupId>
</exclusion>
<exclusion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</exclusion>
</exclusions>
<groupId>com.datastax.spark</groupId>
<version>${spark.cassandra.version}</version>
</dependency>
您在 POM 的 <dependencyManagement>
部分添加一个条目,您可以在其中指定所需的 snakeyaml 版本。
这将覆盖 snakeyaml 的所有传递版本定义。
我建议切换到 SCC 2.5.2(或至少 2.5.1)- 那里有关于依赖项的修复,它已将驱动程序升级到 4.10.0 等。另一种可能性是使用 spark-cassandra-connector-assembly
相反,包含所有依赖项并加阴影。
我正在尝试使用现有项目中的 pom 文件,但出现错误“无法解析 org.yaml:snakeyaml:1.15”
关于此错误,我发现 com.datastax.spark:spark-cassandra-connector_2.11:2.5.0 使用了几个依赖项,并且向下几层使用了 snakeyaml:1.15 被公司代理隔离。有没有办法指定我想使用的给定 Maven 依赖项 snakeyaml:1.16?
我不明白的一件事是我查看了也使用 com.datastax.spark:spark-cassandra-connector_2.11:2.5.0 的参考项目,它正在使用更新的 com.datastax.oss:java-driver-core-shaded:4.9.0,不再需要 snakeyaml:1.15 其中我使用旧的 com.datastax.oss:java-driver-core-shaded:4.5.0
为什么它在那个 pom 中工作? com.datastax.spark:spark-cassandra-connector_2.11:2.5.0
我们有相同的 Maven 列表版本我看到它有一些排除项,但 none 解决了 snake yaml 版本或其任何父依赖项。
是否有 pom 文件的另一部分可以解决我所缺少的这个问题?请指教
我的pom
<scala.compat.version>2.11</scala.compat.version>
<spark.cassandra.version>2.5.0</spark.cassandra.version>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_${scala.compat.version}</artifactId>
<version>${spark.cassandra.version}</version>
</dependency>
哪里出错了
但是另一个项目正在使用正确的阴影版本 com.datastax.oss:java-driver-core-shaded:4.9.0,它消除了蛇依赖性
工作 pom
<scala.compat.version>2.11</scala.compat.version>
<spark.cassandra.version>2.5.0</spark.cassandra.version>
<dependency>
<artifactId>spark-cassandra-connector_${scala.compat.version}</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<artifactId>netty-all</artifactId>
<groupId>io.netty</groupId>
</exclusion>
<exclusion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</exclusion>
</exclusions>
<groupId>com.datastax.spark</groupId>
<version>${spark.cassandra.version}</version>
</dependency>
您在 POM 的 <dependencyManagement>
部分添加一个条目,您可以在其中指定所需的 snakeyaml 版本。
这将覆盖 snakeyaml 的所有传递版本定义。
我建议切换到 SCC 2.5.2(或至少 2.5.1)- 那里有关于依赖项的修复,它已将驱动程序升级到 4.10.0 等。另一种可能性是使用 spark-cassandra-connector-assembly
相反,包含所有依赖项并加阴影。