使用maven的模块(spark和jetty)之间不兼容



我正在创建一个使用spark和jetty库的程序。依赖关系由maven管理。

问题是,如果定义了bot依赖项,则找不到某些类。特别是CCD_ 1。其他类没有问题。如果我删除了对spark-core的依赖,所有的工作都是正确的。为什么会发生这种情况?

我的例子是基于这个存储库的,在"javax.websocketexample"项目中添加spark-core依赖项可以重现错误

我尝试过不同版本的spark core和jetty-websocket:

  • 火花芯(2.10和2.11):1.2.0和1.2.1
  • Javax.websocket示例:9.3.0.M1、9.2.7.v20150116和9.1.5.v9.1.5.v220140505

Maven依赖性:

    <dependency> <!-- Spark dependency -->
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.2.0</version>
        <!--<scope>provided</scope>-->
    </dependency>
    <dependency> <!-- Jetty dependency -->
        <groupId>org.eclipse.jetty.websocket</groupId>
        <artifactId>javax-websocket-server-impl</artifactId>
        <version>9.2.7.v20150116</version>
        <!--<scope>provided</scope>-->
    </dependency>

编辑:

更多信息:我在一个使用流浪汉的空场景中复制了错误。使用的盒子是这个。我使用本手册安装了maven、git和oracleJava。我已经用这个存储库的"javax.websocketexample"项目进行了测试。

在这个测试中,项目在没有消除核心依赖关系的情况下运行,也没有使用依赖关系运行。依赖项使用的版本是最后一个,我已经尝试过项目jetty版本和9.2.X(9.2.7.v20150116)的最后一个版本

依赖性:

    <dependency> 
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.2.1</version>
    </dependency>

这是同一个库与不同版本之间的依赖问题。(spark使用8.1.XXX,我的模块使用9.XX)。不能排除依赖关系,因为它在模块中使用。然后,这个问题是一个Java依赖性问题,如果没有OSGi等其他技术,就没有解决方案

我在这里问了类似的问题

最新更新