我正在尝试为我的 scalatra 项目创建一个独立的 Jar 文件。我正在关注这里给出的答案Standalone deployment of Scalatra servlet。本质上是在尝试选项 1 Standalone 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 但不知道如何设置。任何帮助表示赞赏。