SuperAPI AI 工具集

building-scala-projects

通用与其它

查看项目

更新于 10-16 03:39

技能介绍

用途:为 Scala 项目提供一套可落地的 sbt 构建、CI 门禁与发布约定,重点解决构建工具与跨版本带来的常见失败模式,例如本地与 CI 的 JVM/Scala 版本不一致、交叉构建只编译一个轴、发布到 Sonatype 时半途而废。

主要能力:给出 build.sbt 关键配置,包括固定 scalaVersion(如 3.3.4)、organization、libraryDependencies 与 scalacOptions;强调同时固定 JVM(.sbtopts/.java-version 或 setup-java 矩阵),Scala 依赖使用 %% 以自动附加版本后缀。CI 门禁方面,要求运行 sbt scalafmtCheckAll、sbt "scalafixAll --check" 和 sbt test,并在 .scalafmt.conf 中固定 version,避免格式化器版本漂移导致无关 PR 变红。交叉构建方面,crossScalaVersions 是承诺,需用 sbt +test 或矩阵逐版本编译测试,否则未覆盖的版本会静默腐化。测试方面提醒 sbt test 在无测试时也返回 0,需确认测试任务真正执行断言。发布方面建议用 sbt-ci-release 自动化快照与正式版路由、签名和 Sonatype bundle 发布,并补齐 licenses、developers、scmInfo 及 source+javadoc。

使用方式:按资料中的 build.sbt 片段配置项目,在 CI 中固定 Java 版本并依次执行格式化检查、lint 检查与测试;发布前先做一次快照发布以暴露元数据错误,再打正式标签。

适用场景:需要维护 Scala 库或应用、要求 CI 门禁可靠、并计划发布到 Maven Central 的团队。

限制:资料未提供完整 build.sbt、CI workflow 与发布 runbook 的参考文件,也未说明具体版本号与平台细节;Central 版本不可变,已发布版本号不可复用。