如何将 Class-Path in MANIFEST.MF 设置为自定义类路径?

How to set Class-Path in MANIFEST.MF to custom classpath?

我必须在其 MANIFEST.MF 中部署一个具有非常特定类路径的 JAR。我将如何配置 sbt 以便打包的 JAR 具有这个特定的类路径(例如):

.
lib/abc.jar
lib/xyz.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-annotations/2.2.3/jackson-annotations-2.2.3.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-core/2.2.3/jackson-core-2.2.3.jar
../../lib/maven/com/fasterxml/jackson/core/jackson-databind/2.2.3/jackson-databind-2.2.3.jar
../../lib/maven/commons-codec/commons-codec/1.9/commons-codec-1.9.jar
../../lib/maven/commons-io/commons-io/2.4/commons-io-2.4.jar
../../lib/maven/joda-time/joda-time/2.5/joda-time-2.5.jar
../../lib/maven/log4j/log4j/1.2.11/log4j-1.2.11.jar
../../lib/database/SQLServer2008/3.0.1301.101/sqljdbc4.jar

(真正的当然也会包括Scala。)

尝试在您的构建中添加类似这样的内容:

val classPath = Seq(
  ".",
  "lib/abc.jar",
  "lib/xyz.jar",
  "../../lib/maven/com/fasterxml/jackson/core/jackson-annotations/2.2.3/jackson-annotations-2.2.3.jar",
  "../../lib/maven/com/fasterxml/jackson/core/jackson-core/2.2.3/jackson-core-2.2.3.jar",
  "../../lib/maven/com/fasterxml/jackson/core/jackson-databind/2.2.3/jackson-databind-2.2.3.jar",
  "../../lib/maven/commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
  "../../lib/maven/commons-io/commons-io/2.4/commons-io-2.4.jar",
  "../../lib/maven/joda-time/joda-time/2.5/joda-time-2.5.jar",
  "../../lib/maven/log4j/log4j/1.2.11/log4j-1.2.11.jar",
  "../../lib/database/SQLServer2008/3.0.1301.101/sqljdbc4.jar"
)

packageOptions += Package.ManifestAttributes(
  "Class-Path" -> classPath.mkString(" ")
)