Scala sbt本机打包机不';t在target/universal/stage/bin下创建脚本
我正在尝试使用来自sbt native packager的JavaAppPackaging。我的理解是,当我跑步时:Scala sbt本机打包机不';t在target/universal/stage/bin下创建脚本,scala,sbt,sbt-native-packager,Scala,Sbt,Sbt Native Packager,我正在尝试使用来自sbt native packager的JavaAppPackaging。我的理解是,当我跑步时: sbt阶段 我应该得到一个带有一些启动脚本的目录target/universal/stage/bin。现在我只得到包含jar及其依赖项的lib 以下是my build.sbt的相关部分: val scalatra = "org.scalatra" %% "scalatra" % "2.3.1" enablePlugins(JavaAppPackaging) lazy val
sbt阶段
我应该得到一个带有一些启动脚本的目录target/universal/stage/bin。现在我只得到包含jar及其依赖项的lib
以下是my 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
)
此外,my plugins.sbt还有以下功能:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0")
我使用的是sbt 0.13.8
那么为什么我不获取启动脚本,我缺少什么呢?您需要确保sbt为脚本找到一个main 这可能意味着要么确保您有一个main:一个
扩展App
的对象,要么定义一个def main(args:Array[String]):Unit
否则,请尝试设置mainClass
,如下所示:
mainClass in Compile := Some("JettyLauncher")
尝试设置没有任何作用域的主类:
mainClass:=Some(“full.path.to.MainApp”)
我有一个带有main的类。我必须告诉sbt它是哪一个吗?至少这没有帮助:mainClass in(编译,运行):=Some(“JettyLancher”)@auramo-Hmm好的,那么你需要提供更多的细节,因为你目前拥有的+一个简单的应用程序stage
将生成脚本。在(编译)中将其更改为mainClass:=Some(“JettyLancher”),然后进行sbt清洁,然后进行sbt阶段。现在成功了!不知道是哪一个改变起了作用。无论如何,谢谢你让我走上了正确的道路<(编译,运行)中的code>mainClass仅在编译配置和run
任务期间设置主类。运行阶段
任务时,仍然没有主类集。