如何向MANIFEST.MF添加自定义行?

Cox*_*xer 5 manifest.mf sbt

使用Build.scala向MANIFEST.MF添加自定义键值对似乎不起作用.这是我的代码:

import sbt._
import Keys._
import java.util.Date

object Build extends Build {

  packageOptions in (Compile, packageBin) +=
    Package.ManifestAttributes( "Build" -> "true" )

}
Run Code Online (Sandbox Code Playgroud)

当我添加:

packageOptions in (Compile, packageBin) +=
  Package.ManifestAttributes( "Sign" -> "true" )
Run Code Online (Sandbox Code Playgroud)

到我的build.sbt然后只Sign到达我的MANIFEST.MF.有什么想法吗?

lpi*_*ora 7

我想你可能想要这样的东西(注意manifestSettings添加到项目的设置中).

import sbt._
import Keys._
import java.util.Date
import sbt.Package.ManifestAttributes

object MyBuild extends Build {

  lazy val manifestSettings = Seq(
    packageOptions in (Compile, packageBin) += 
         Package.ManifestAttributes( "Build" -> "true" )
  )

  lazy val root = Project(id = "root", base = file(".")).settings(manifestSettings: _*)

}
Run Code Online (Sandbox Code Playgroud)

然后你应该能够调用package并拥有一个带有额外清单条目的jar.

编辑

要得到("Buid" -> <current time>)manifestSettings应该是

lazy val manifestSettings = Seq(
  packageOptions in (Compile, packageBin) += 
           Package.ManifestAttributes( "Build" -> new Date().toString() )
)
Run Code Online (Sandbox Code Playgroud)