【问题标题】:Incompatibilities between modules (spark and jetty) using maven使用 maven 的模块(火花和码头)之间的不兼容性
【发布时间】:2015-02-20 18:57:19
【问题描述】:

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

问题是如果定义了机器人依赖项,则找不到某些类。特别是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 示例: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>

【问题讨论】:

    标签: java maven dependencies jetty apache-spark


    【解决方案1】:

    这是同一个库不同版本之间的依赖问题。 (spark 使用 8.1.XXX,我的模块使用 9.XX)。无法排除依赖项,因为在模块中使用。那么,这个问题就是一个Java依赖问题,没有OSGi等其他技术是无法解决的

    我问过类似的问题here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多