与sbt建立罐子

时间:2018-04-12 14:02:09

标签: scala intellij-idea sbt

我按照本教程创建了一个scala jar来上传到要在spark评估器中使用的streamsets。

我正在使用Intellij 2017.3.4。

如果我使用Intellij将工件构建到out文件夹中,它的大小超过100mb。

如果我使用' sbt clean package'从命令行选择,jar是3mb。

他们都工作正常。

有谁可以告诉我为什么会出现这样的差异,以及我如何设置我的Intellij以便创建较小的版本?

由于

马特

1 个答案:

答案 0 :(得分:0)

如果不进一步了解您的build.sbt和您的IntelliJ设置,我只能猜测您的build.sbt包含这样一行:

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0" % Provided

注意Provided。这意味着火花没有捆绑在sbt准备的jar中,但预计已经存在于运行程序的服务器上(在类路径上)。

IntelliJ使用所有jar(包括标记为provided的jar),以便您可以通过IntelliJ调试/运行程序。由于您没有在IntelliJ中添加构建设置,因此这是我现在可以做的最好的事情。

如果您使用sbt assembly打包工件,并且希望使用IntelliJ中的运行配置执行此操作,则可以转到Run/Debug Configurations,单击+按钮,然后选择{{ 1}}并填写sbt task作为任务。

详细了解如何打包您的火花应用here

我希望有帮助:)