scala sbt 程序集 "no main manifest attribute"
scala sbt assembly "no main manifest attribute"
我在 sbt 中使用汇编插件 assemble 我的项目。但是当 运行 by "java -jar xx.jar" -
时会发生错误
"no main manifest attribute".
我认为这是因为我的 src/main/scala/
目录中有两个文件,每个文件都有一个扩展 Application
的对象,这意味着项目中有两个主要条目。但是我需要两个应用程序,一个是服务端,一个是测试客户端。
如何在 scala sbt 中处理这个 two-main-entry
问题。提前致谢。
在您的 SBT 构建文件中,定义主要 class。
如果您使用的是 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"))
我在测试 Lagom 时遇到了这个问题。
要在 Lagom 中部署,您只需访问 -impl 项目和 运行 这个:
./sbt "project <your-project>-impl" dist
这将生成一个包含可执行文件的 zip。
您可以使用 -cp
而不是 -jar
java -cp xx.jar com.domain.AnyClassName
我在 sbt 中使用汇编插件 assemble 我的项目。但是当 运行 by "java -jar xx.jar" -
时会发生错误"no main manifest attribute".
我认为这是因为我的 src/main/scala/
目录中有两个文件,每个文件都有一个扩展 Application
的对象,这意味着项目中有两个主要条目。但是我需要两个应用程序,一个是服务端,一个是测试客户端。
如何在 scala sbt 中处理这个 two-main-entry
问题。提前致谢。
在您的 SBT 构建文件中,定义主要 class。
如果您使用的是 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"))
我在测试 Lagom 时遇到了这个问题。
要在 Lagom 中部署,您只需访问 -impl 项目和 运行 这个:
./sbt "project <your-project>-impl" dist
这将生成一个包含可执行文件的 zip。
您可以使用 -cp
而不是 -jar
java -cp xx.jar com.domain.AnyClassName