问题
I have to deploy a JAR with a very specific classpath in its MANIFEST.MF. How would I configure sbt so the packaged JAR has this specific classpath (for example):
.
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
(The real one will include Scala too, of course.)
回答1:
Try adding something like this to your build:
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(" ")
)
来源:https://stackoverflow.com/questions/29696288/how-to-set-class-path-in-manifest-mf-to-custom-classpath