使用sbt-osgi插件,可以使用该OsgiKeys.embeddedJars
属性创建“胖罐子”。
例如,下面的代码(从这个测试中提取)将每个名称以开头的依赖项jUnit
嵌入到已编译的 jar 中:
OsgiKeys.embeddedJars := (Keys.externalDependencyClasspath in Compile).value map (_.data) filter (
_.getName startsWith "junit")
就我而言,我的依赖项声明如下:
libraryDependencies += "org.apache.logging.log4j" % "log4j-api" % "2.7" % Provided
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % akkaVersion
我希望每个库都嵌入到胖罐中,除了那些用Provided
. 所以在这种情况下com.typesafe.akka
应该包含在fat jar中而不org.apache.logging.log4j
应该编译到jar中。
有什么办法可以修改上面的过滤方法,以满足我的要求吗?