sbt-native-packager 在不同的模块中定义多个 mainClasses

Posted

技术标签:

【中文标题】sbt-native-packager 在不同的模块中定义多个 mainClasses【英文标题】:sbt-native-packager defining multiple mainClasses in different modules 【发布时间】:2019-03-14 01:09:09 【问题描述】:

我想打包多个 docker 镜像,每个镜像都有自己的 mainClass,以确保应用在启动时运行。

lazy val `core` = project.in(file("core"))
  .enablePlugins(JavaServerAppPackaging, DockerPlugin)
  .settings
    mainClass in Compile := Some("path/to/Core") // Doesn't work
  

lazy val `benchmark` = project.in(file("benchmark"))
  .enablePlugins(JavaServerAppPackaging, DockerPlugin)
  .settings
    mainClass in Compile := Some("path/to/Benchmark") // Doesn't work
  

这不起作用,因为在 stage 步骤中找不到 mainClasses。

当我将 mainClass 定义为全局参数时,它可以工作,但我无法以这种方式构建两个自动运行的 Docker 映像。

感谢您的帮助

【问题讨论】:

【参考方案1】:

我对@9​​87654321@ 没有经验,但mainClass 是类路径而不是文件路径,所以它必须定义为:

mainClass in (Compile, packageBin) := Some("com.bar.baz.Foo")

【讨论】:

以上是关于sbt-native-packager 在不同的模块中定义多个 mainClasses的主要内容,如果未能解决你的问题,请参考以下文章

SBT 使用 sbt-native-packager 如何创建不同的构建文件?

在 sbt-native-packager 中过滤映射

matlab里,有没有函数直接求一个矢量的模

在 sbt-native-packager 中配置“动态”命令行参数

如何在多个项目中使用 sbt-native-packager

在 sbt-native-packager 的通用包中更改名称