Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add custom lines to MANIFEST.MF?

Adding custom key-value-pairs to the MANIFEST.MF using Build.scala seems not to work. Here is my code:

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

object Build extends Build {

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

}

When I add:

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

To my build.sbt then only Sign reaches my MANIFEST.MF. Any thoughts?

like image 972
Coxer Avatar asked May 08 '14 15:05

Coxer


1 Answers

I think you may want something like this (note the manifestSettings added to the settings of the project).

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: _*)

}

Then you should be able to call package and have the a jar with the extra manifest entry.

Edit

To get the ("Buid" -> <current time>) the manifestSettings should be

lazy val manifestSettings = Seq(
  packageOptions in (Compile, packageBin) += 
           Package.ManifestAttributes( "Build" -> new Date().toString() )
)
like image 117
lpiepiora Avatar answered Sep 23 '22 09:09

lpiepiora