打包scala代码为jar包时的不同情况(1.只有一个scala文件; 2.项目结构中有多个scala文件)
例如:
(1)如果只有一个scala文件时:
①在build.sbt中指定主类
mainClass in Compile := Some("com.example.MergeFiles") // 指定要打包的主类
②使用命令对整个项目进行打包
sbt assembly
(2)如果有多个scala文件并且只需要打包其中的某个scala文件为jar包
-
删除其他文件的
main
方法如果您的项目包含多个 Scala 文件,但您只希望打包某一个包含
main
方法的文件(如:MergeFiles.scala
),确保项目中其他文件没有main
方法。然后,在build.sbt
中指定要打包的主类:mainClass in Compile := Some("com.example.MergeFiles") // 只指定 MergeFiles 类
-
使用
sbt package
打包:如果您的项目中不需要依赖
sbt-assembly
插件(不需要创建 fat JAR),您可以直接使用sbt package
来生成 JAR 文件。运行以下命令:
sbt package
这将生成一个 JAR 文件,但该文件不包含项目的所有依赖(只包含项目的代码)。生成的 JAR 文件位于
target/scala-2.12/
目录下。
小注意:build.sbt文件中的name就是打包过后jar包的名字,在打包不同的代码为jar包时,记得修改名字,否则会覆盖之前的jar包
标签:文件,sbt,scala,知识,jar,MergeFiles,spark,打包 From: https://www.cnblogs.com/lian369/p/18616793