2015-05-23 23 views
2

我正在尝试使用sbt-native-packager中的JavaAppPackaging。我的理解是,当我运行:sbt native packager不会在目标/通用/ stage/bin下创建脚本

sbt 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 
) 

而且,我plugins.sbt有这样的:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0") 

我使用SBT 0.13.8。

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

回答

3

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

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

否则尝试设置mainClass,就像这样:

mainClass in Compile := Some("JettyLauncher") 
+0

我有一个类为主。我必须告诉某人它是哪一种? – auramo

+0

至少这没有帮助:mainClass in(编译,运行):=一些(“JettyLauncher”) – auramo

+0

@auramo嗯好的,那么你需要提供更多的细节,因为你现在拥有一个简单的App'stage'将生成脚本。 –

2

尝试设置主类,没有任何的范围:mainClass := Some ("full.path.to.MainApp")

相关问题