12

我在 sbt 中使用组装插件来组装我的项目。但是通过“java -jar xx.jar”运行时会发生错误 -

“没有主要清单属性”。

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

如何two-main-entry在 scala sbt 中处理这个问题。提前致谢。

4

3 回答 3

23

在您的 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"))
于 2015-01-09T10:45:34.263 回答
4

您可以使用-cp而不是-jar

java -cp xx.jar com.domain.AnyClassName

于 2018-10-12T09:52:11.520 回答
0

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

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

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

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

于 2017-07-28T08:34:41.693 回答