我按照本教程创建了一个scala jar来上传到要在spark评估器中使用的streamsets。
我正在使用Intellij 2017.3.4。
如果我使用Intellij将工件构建到out文件夹中,它的大小超过100mb。
如果我使用' sbt clean package'从命令行选择,jar是3mb。
他们都工作正常。
有谁可以告诉我为什么会出现这样的差异,以及我如何设置我的Intellij以便创建较小的版本?
由于
马特
答案 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。
我希望有帮助:)