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

旧街凉风 提交于 2020-01-06 07:27:29

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!