sbt汇编缺少类

时间:2016-06-03 07:16:43

标签: java scala apache-spark sbt

在我的SBT构建文件中,我有以下条目:

libraryDependencies += "org.apache.httpcomponents" % "httpcore" % "4.4.4"

libraryDependencies += "org.apache.httpcomponents" % "httpclient" % "4.5.2"

在我的代码中,我使用:

import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClientBuilder

val httpClient = HttpClientBuilder.create().build();

val httpGet = new HttpGet(url)

当我在我的机器上运行它时,它可以工作。但是当我将jar文件(sbt程序集)部署到另一台机器时,我得到了:

java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClientBuilder

解压缩jar文件时,确实没有HttpClientBuilder类。

2 个答案:

答案 0 :(得分:0)

你如何建造罐子?

sbt compile 

如果你想要胖子,你必须使用sbt https://github.com/sbt/sbt-assembly的程序集插件并运行

sbt assembly 

答案 1 :(得分:0)

在我的班级深处似乎提到了一种被剥夺的方法,由于某些原因,它没有找到进入胖罐的方法。

改变

httpClient.getConnectionManager().shutdown()

httpClient.close();

解决了这个问题。

它与sbt无关,而是与java lib本身有关。