使用maven在模块(火花和码头)之间不兼容

时间:2015-02-12 08:32:07

标签: java maven dependencies jetty apache-spark

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

问题是如果定义了bot依赖项,则找不到某些类。具体来说是org.eclipse.jetty.server.ServerConnector。其他课程没有问题。如果我删除了spark-core依赖项,那么一切正常。为什么会发生这种情况?

我的示例基于此repository,并且可以重现错误,将spark-core依赖项添加到“javax.websocket-example”项目

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

  • spark-core(2.10和2.11):1.2.0和1.2.1
  • Javax.websocket-example:9.3.0.M1,9.2.7.v20150116和9.1.5.v9.1.5.v20140505

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>

编辑:

更多信息:我在使用vagrant的空场景中重现了错误。使用的框是this。我使用这个manual安装了maven,git和oracle Java。我已使用此repository的“javax.websocket-example”项目完成了测试。

在这个测试中,项目在没有de spark-core依赖的情况下运行,并且它不依赖于它。使用依赖的版本是最后一个,我尝试使用项目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>

1 个答案:

答案 0 :(得分:0)

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

就没有解决方案

我问了类似的问题here