scala sbt assembly“没有主要的清单属性”

时间:2015-01-09 10:40:45

标签: scala sbt sbt-assembly

我在sbt中使用程序集插件来组装我的项目。但是当“java -jar xx.jar” -

运行时会发生错误

“没有主要的清单属性”。

我认为这是因为我的src/main/scala/目录中有两个文件,每个文件都有一个扩展Application的对象,这意味着项目中有两个主要条目。但我需要两个应用程序,一个是服务器,另一个是测试客户端。

如何处理scala sbt中的two-main-entry问题。提前谢谢。

3 个答案:

答案 0 :(得分:18)

在您的SBT构建文件中,定义主类。

如果您使用的是build.sbt,那么就是:

mainClass in assembly := Some("com.domain.Main")

如果您使用Build.scala,那么您可以执行以下操作:

lazy val app = (project in file("app")).
  settings(assemblySettings: _*)
  settings(mainClass in assembly := Some("com.domain.Main"))

答案 1 :(得分:1)

您可以使用-cp代替-jar

java -cp xx.jar com.domain.AnyClassName

答案 2 :(得分:0)

我在测试Lagom时遇到了这个问题。

要在Lagom中部署,您只需访问-impl项目并运行:

./sbt "project <your-project>-impl" dist

这将生成一个包含可执行文件的zip文件。