我正在尝试使用VSCode和metals扩展为Scala和Spark开发。我的设置是按照说明(here)使用开发容器。现在我的代码已经运行了,我需要构建一个jar文件来部署到Spark。有没有办法在金属扩展中做到这一点?
我读过关于使用sbt-assembly
构建一个fat jar的文章,但我不确定如何将其与我的设置集成。任何帮助将不胜感激。
编辑
更清楚地说,metals VSCode扩展使用bloop或sbt-bsp作为构建服务器,我已经将其配置为使用sbt服务器。我的问题是,我是否以及如何将sbt-assembly扩展与它集成。
3条答案
按热度按时间xiozqbni1#
我找到了我的问题的答案,谢谢大家的帮助。
oxcyiej72#
sbt compile
之后的sbt package
应该会生成您想要的结果。您可以找到更多关于生成JAR here然后运行JAR here的信息。
mzsu5hc03#
对于任何仍然偶然发现这个问题的人来说,我只是浪费了几个小时浏览所有内容。有两种类型的Jar文件:
1.依赖关系jar文件:添加到项目中以使用其代码的对象)
1.单机(胖)jar文件:你可以直接执行,或者双击,或者通过命令行运行。
在第一种情况下,您可以简单地使用
sbt package
,它将为您生成一个包。项目中的任何依赖项都将成为该jar的依赖项,您可以将其导入到项目中。在第二种情况下,您需要安装一个类似
sbt-assembly
的工具,它允许您下载依赖项并将它们包含在您生成的打包jar中。这将允许您的代码从任何地方运行。为此,您需要将addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.0.0")
(或任何最新版本)添加到plugins.sbt
文件中,然后可以将代码重新导入VSCode,然后从终端运行sbt assembly
。我还没有找到将这个过程与VSCode上的一个按钮集成的方法,但它足够简单,可以运行一个命令。希望这对yall有帮助