如果您使用 SBT 来维护和构建您的项目,那么就像pedrofurla
建议的那样,您应该尝试sbt-assembly插件。在最简单的情况下,只需将以下内容添加到您的项目构建中(我更喜欢Build.scala
,但*.sbt
看起来相同):
1)进口:
import sbtassembly.Plugin._
import AssemblyKeys._
2)设置:
mainClass in assembly := Some("path.to.MainClass")
jarName in assembly := "jar-name.jar"
3)如果要发布工件:
artifact in (Compile, assembly) ~= { art =>
art.copy(`classifier` = Some("assembly"))
} // add classifier
然后是您的发布任务:
lazy val publishingSettings = addArtifact(artifact in (Compile, assembly), assembly) ++ Seq(
publishTo := /* your repository settings */
)
assembly
获取一体化 jar 文件或发布以将其发布到您的存储库的调用。那应该工作