Как добавить пользовательские строки в MANIFEST.MF?

Добавление пользовательских пар ключ-значение в MANIFEST.MF с помощью Build.scala, похоже, не работает. Вот мой код:

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

object Build extends Build {

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

}

Когда я добавляю:

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

В моем build.sbt только Sign достигает моего MANIFEST.MF. Какие-нибудь мысли?


person Coxer    schedule 08.05.2014    source источник


Ответы (1)


Я думаю, вы можете захотеть что-то вроде этого (обратите внимание на 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: _*)

}

Затем вы сможете вызвать package и получить банку с дополнительной записью манифеста.

Редактировать

Чтобы получить ("Buid" -> <current time>), manifestSettings должно быть

lazy val manifestSettings = Seq(
  packageOptions in (Compile, packageBin) += 
           Package.ManifestAttributes( "Build" -> new Date().toString() )
)
person lpiepiora    schedule 08.05.2014