如何使用sbt程序集传递mainClass参数
不确定是否可能,但我希望有几个主类,并且不希望每次运行如何使用sbt程序集传递mainClass参数,sbt,sbt-assembly,Sbt,Sbt Assembly,不确定是否可能,但我希望有几个主类,并且不希望每次运行sbt assembly 调用assembly时是否有方法传递mainClass参数? 比如: project>assembly-mainClass someApp.scala 谢谢所以我想出了一些解决方案(实际上没有在终端中指定mainClass) 我有一个项目/模块(它是一个sbt多项目),基本上复制了旧模块,只做了一些修改,包括mainClass lazy val oldProject = (project in file("modul
sbt assembly
调用assembly
时是否有方法传递mainClass
参数?
比如:
project>assembly-mainClass someApp.scala
谢谢所以我想出了一些解决方案(实际上没有在终端中指定mainClass) 我有一个项目/模块(它是一个sbt多项目),基本上复制了旧模块,只做了一些修改,包括mainClass
lazy val oldProject = (project in file("modules/old-project"))
...
lazy val newProject = oldProject.copy(
id = s"${oldProject.id}-new"
).settings(
mainClass in assembly := Some("someNewApp"),
assemblyJarName in assembly := "someNew.jar",
target := file("modules/some-new-project")
)
lazy val root = (project in file("."))
.settings(commonSettings)
.dependsOn(..., oldProject, newProject, ...)
.aggregate(..., oldProject, newProject, ...)
现在我可以在sbt中选择新的项目/模块并运行assembly
,它在新的目标文件夹中生成一个jar
这基本上是假装一个模块中有两个模块
注意:我还没有运行jar。我会尝试以下方法:
sbt "set mainClass in assembly := Some(\"com.some.Class\")" assembly
基本上,您应该能够使用这样的语句定义任何构建范围中的任何键。只要注意转义引号 Thx,我接受这个答案而不是我的答案,因为它回答了具体的问题。