Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

sbt/sbt-dynver

说明与用途

**项目简介**
sbt/sbt-dynver 是一个 **sbt 插件**,能够在构建时自动从 Git 仓库读取标签/提交信息,生成符合语义化版本号的 version 字段,省去手动维护版本号的繁琐。

---

价值点

  1. **自动化版本管理**:基于 Git 的最新 tag 或 commit,实时生成 x.y.z‑SNAPSHOT、x.y.z‑rcN 等版本,保证每一次构建都有唯一且可追溯的版本号。
  2. **与 CI/CD 完美契合**:在持续集成流水线中无需额外脚本,只需在 build.sbt 中启用插件,即可让每次 CI 运行自动带上对应的 Git 版本。
  3. **降低人为错误**:避免手动修改 version 带来的遗漏或冲突,提升团队协作的可靠性。
  4. **轻量且无侵入**:插件本身只有几百行 Scala 代码,依赖少,对现有 sbt 项目几乎没有改动成本。

---

典型接入方式

  1. **在项目根目录的 project/plugins.sbt 中添加**
   addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.0.1")   // 版本号请参考最新 release
  1. **在 build.sbt 中启用插件**(默认即启用)
   enablePlugins(DynVerPlugin)   // 可选,若未显式启用,插件会自动生效
  1. **可选配置**(根据需求自定义)
   dynverSonatypeSnapshots := true          // 生成 SNAPSHOT 版本时加上 -SNAPSHOT
   dynverGitDescribeOutput := DynVerGitDescribeOutput("v", "", "-RC", "", true)
  1. **在 CI 中使用**
  • 直接读取 version.value(如 sbt "print version")作为 Docker 镜像标签、发布 artifact 的版本号等。
  • 与 GitHub Actions、GitLab CI、Jenkins 等常见 CI 工具配合,无需额外脚本。

---

生产可用性评估

| 维度 | 评估 | 说明 |
|------|------|------|
| **社区活跃度** | ★★★★☆ (4/5) | 316 ★、51 Fork,最近一次提交在 **2026‑07‑08**,说明仍在维护。 |
| **成熟度** | ★★★☆☆ (3/5) | 已在多个开源项目中使用,适合作为内部或原型阶段的版本管理方案。 |
| **依赖风险** | ★★☆☆☆ (2/5) | 仅依赖 sbt 与 Scala 标准库,风险低;但使用前需确认与项目 sbt 版本兼容(插件支持 sbt 1.5+)。 |
| **安全/许可证** | ★★★★☆ (4/5) | 基于 Apache‑2.0 许可证,无已知安全漏洞。 |
| **生产建议** | **可用** | 适合 **原型、内部服务、CI/CD 自动化**;在正式生产环境使用前,建议:<br>1. 在预发布环境做一次完整的构建‑发布‑回滚验证。<br>2. 将插件版本锁定在 project/plugins.sbt,防止因上游突发改动导致构建不稳定。 |

**结论**:sbt-dynver 是一个轻量、自动化的版本号生成方案,能够显著简化 Scala/sbt 项目的发布流程。对大多数内部或中小型生产系统来说,经过一次预发布验证后即可安全投入使用。只要保持插件版本的明确锁定并定期检查其兼容性,即可在生产环境中获得可靠的版本管理支持。

实际用途

sbt/sbt-dynver may be useful when its README and activity match a concrete workflow.

限制与审查说明

Medium: useful for prototypes or internal workflows, with dependency and maintenance checks before production.

  • 来源: github
  • 语言: Scala
  • 记录日期: 2026-09-05T17:32:03.769Z
原始来源