我正在创建一个使用spark和jetty库的程序。依赖项由maven管理。
问题是如果定义了bot依赖项,则找不到某些类。具体来说是org.eclipse.jetty.server.ServerConnector
。其他课程没有问题。如果我删除了spark-core依赖项,那么一切正常。为什么会发生这种情况?
我的示例基于此repository,并且可以重现错误,将spark-core依赖项添加到“javax.websocket-example”项目
我尝试过使用不同版本的spark-core和jetty-websocket:
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>
答案 0 :(得分:0)
这是具有不同版本的同一库之间的依赖性问题。 (spark使用8.1.XXX,我的模块使用9.XX)。不能排除依赖关系,因为在模块中使用了依赖关系。然后,这个问题是Java依赖性问题,没有其他技术如OSGi
就没有解决方案我问了类似的问题here