1

我必须为使用 proguard 的任务创建的包创建 osgi 清单。对于 osgi 部分,我正在使用 sbtosgi 插件(版本 0.6) 目前我尝试过这样的事情:

  object BuilderKeys {
    val pkg = TaskKey[File]("package")
    val bld = TaskKey[File]("build")
    val targetFile = TaskKey[File]("targetFile")
    ... 
  } 

  lazy val settings = ... + BuilderSettings.default(bundle) + BuilderSettings.osgi(bundle)

  object BuilderSettings {
    def default(configuration: Configuration) // initializes bld (task that creates one uber-jar using proguard)   

    def osgi(configuration: Configuration) = inConfig(configuration)(SbtOsgi.defaultOsgiSettings ++ Seq(
      fullClasspath in Compile := Seq(Attributed.blank((targetFile in configuration).value)),
      pkg <<= (OsgiKeys.bundle dependsOn bld) map { f: File =>
        f
      }
   ))          
  }

运行 bundle:package 创建带有清单的 jar,但不是基于 proguard 创建的 jar。是否有可能以某种方式强制它?

4

0 回答 0