sbt - 使用 sbt 在 fat jar list 中添加 git commit id

标签 sbt sbt-assembly fatjar

我正在使用 sbt-assembly 插件为我的 scala 项目构建一个 fat Jar。有没有一种方法可以在 jar list 中包含 git commit id,类似于 git-commit-id-plugin 为 maven 所做的事情。

谢谢

最佳答案

老问题,但我去...

你可以使用 sbt-git带有 sbt-assembly 的插件,用于在您的 MANIFEST.MF 文件中包含 git 信息。

要将信息添加到您的 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

此信息将存储在由 sbt-assembly 生成的 fat jar 中包含的 MANIFEST.MF 文件中:

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 文件中。

关于sbt - 使用 sbt 在 fat jar list 中添加 git commit id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51623091/

相关文章:

apache-spark - 在 Spark Scala 应用程序中使用带有 Log4J2 的异步日志记录

git - 来自 github PR (ScalaNative) 的 sbt scala 插件失败,未找到值

scala - Apache Spark Mllib 2.1.0 出现 Scala sbt 错误

sbt - 在哪里可以在线找到工件存储库中的 sbt-assembly?

java - JDK11/JavaFX : How do I make a fat jar without build/depdency management?

java - 尝试使用 sbt 构建一个 scala 项目。 scala-swing Unresolved 依赖关系

scala - 添加一些依赖项后,sbt 组装任务运行缓慢

java - Gradle-FatJar-无法找到或加载主类

java - 如何在没有源文件但使用 fat jar 的情况下运行 gradle JUnit 测试作业?