sbt 本机打包器不会在 target/universal/stage/bin 下创建脚本

aur*_*amo 5 scala sbt sbt-native-packager

我正在尝试使用 sbt-native-packager 中的 JavaAppPackaging。我的理解是,当我跑步时:

sbt stage

我应该获得一个包含一些启动脚本的目录 target/universal/stage/bin 。现在我只得到包含我的 jar 及其依赖项的 lib。

这是我的 build.sbt 的相关部分:

val scalatra = "org.scalatra" %% "scalatra" % "2.3.1"

enablePlugins(JavaAppPackaging)

lazy val root = (project in file(".")).
  settings(
    name := "myapp",
    version := "0.2",
    scalaVersion := "2.11.6",
    libraryDependencies += scalatra
  )
Run Code Online (Sandbox Code Playgroud)

另外,我的plugins.sbt有这个:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0")
Run Code Online (Sandbox Code Playgroud)

我正在使用 sbt 0.13.8。

那么为什么我得不到启动脚本,我错过了什么?

Dal*_*and 4

您需要确保 sbt 找到脚本的 main 。

这可能意味着要么确保您有一个 main: 一个对象,extends App要么定义一个def main(args: Array[String]): Unit.

否则尝试设置mainClass,如下所示:

 mainClass in Compile := Some("JettyLauncher")
Run Code Online (Sandbox Code Playgroud)