组装scalatra独立jar时sbt构建文件错误

时间:2021-07-29 21:28:56

标签: scala sbt scalatra scalatra-sbt

我正在尝试为我的 Scalatra 项目创建一个独立的 Jar 文件。我正在关注此处给出的答案 Standalone deployment of Scalatra servlet。本质上是尝试选项 1 独立 Jar,即我希望 webapps 目录中的所有内容都打包在 jar 文件中。

然而,我对 sbt 的有限了解并没有让我将这里的示例翻译成我自己的 build.sbt。寻找关于我做错了什么的答案。 具体来说,我正在尝试将下面的这部分调整到我自己的 build.sbt

  (managedBase, base) =>
    val webappBase = base / "src" / "main" / "webapp"
    for {
      (from, to) <- webappBase ** "*" x rebase(webappBase, managedBase / "main" / "webapp")
    } yield {
      Sync.copy(from, to)
      to
    }
}

下面是我的整个 build.sbt 文件

val ScalatraVersion = "2.7.0-RC1"

name := "my_project"

organization := "com.my_org"

version := "0.2"

scalaVersion := "2.12.7"

resolvers += Classpaths.typesafeReleases

libraryDependencies ++= Seq(
  "org.scalatra" %% "scalatra" % ScalatraVersion,
  "org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test",
  "ch.qos.logback" % "logback-classic" % "1.2.3" % "runtime",
  "org.eclipse.jetty" % "jetty-webapp" % "9.4.9.v20180320" % "container;compile",
  "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided",
  "org.scalatra" %% "scalatra-json" % "2.6.5",
  "org.json4s"   %% "json4s-native" % "3.6.7",
  "com.amazon.redshift" % "redshift-jdbc42" % "1.2.10.1009",
  "org.json4s" %% "json4s-jackson" % "3.6.7",
  "com.amazonaws" % "aws-java-sdk-lambda" % "1.12.27",
  "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.12.3"
)

enablePlugins(SbtTwirl)
enablePlugins(ScalatraPlugin)

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case x => MergeStrategy.first
}

resourceGenerators in Compile <+= (resourceManaged, baseDirectory) map {
  (managedBase, base) =>
    val webappBase = base / "src" / "main" / "webapp"
    for {
      (from, to) <- webappBase ** "*" x rebase(webappBase, managedBase / "main" / "webapp")
    } yield {
      Sync.copy(from, to)
      to
    }
}

错误是我的 build.sbt 在语法上不正确,项目无法构建。

error: value map is not a member of (sbt.SettingKey[java.io.File], sbt.SettingKey[java.io.File])
resourceGenerators in Compile <+= (resourceManaged, baseDirectory) map {

我知道我没有正确设置 assemblySettings 但不知道如何设置。任何帮助表示赞赏。

0 个答案:

没有答案
相关问题