Добавьте идентификатор фиксации git в манифест толстой банки, используя sbt

Я использую плагин sbt-assembly для создания толстого Jar для моего проекта Scala. Есть ли способ включить идентификатор git commit в манифест jar, что-то похожее на то, что git-commit-id-plugin делает для maven.

Спасибо


person Abdul Rahman    schedule 31.07.2018    source источник


Ответы (1)


Старый вопрос, но я иду ...

Вы можете использовать плагин sbt-git с sbt-assembly для включения информации git в ваш MANIFEST.MF файл.

Для добавления информации в файл MANIFEST.MF вы можете использовать ключ packageOptions sbt следующим образом:

import sbt.Package.ManifestAttributes
import com.typesafe.sbt.SbtGit.git
packageOptions := Seq(ManifestAttributes(("Repository-Commit", git.gitHeadCommit.value.get)))

См. пример здесь: spark-authorizer

Эта информация будет храниться в вашем MANIFEST.MF файле, включенном в толстую банку, сгенерированную sbt-assembly:

Manifest-Version: 1.0 
Implementation-Title: spark-authorizer
Repository-Commit: 12538262c1be14800eb820163de6c46cdbd69c99
Implementation-Version: 0.1.0-SNAPSHOT
Specification-Vendor: de.example.playground.spark.authorizer
Specification-Title: spark-authorizer
Implementation-Vendor-Id: de.example.playground.spark.authorizer
Specification-Version: 0.1.0-SNAPSHOT
Implementation-Vendor: de.example.playground.spark.authorizer

Вы можете добавить столько значений, сколько хотите, в packageOptions. Все они будут включены в файл MANIFEST.MF.

person Gooseman    schedule 01.03.2020