You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SBT项目Scala子模块执行publishSigned后未在search.maven.org显示

Scala子模块在Maven中央搜索不到的解决方案

针对你的混合Java/Scala项目cloakroom发布后,Scala子模块(cloakroom-scala_2.13、cloakroom-scala-test-util_2.13)已存在于Maven中央仓库但无法被search.maven.org检索到的问题,以下是具体排查和解决步骤:

1. 等待索引同步延迟

Maven中央仓库的搜索索引和实际存储的构件并非实时同步,通常需要24-48小时才能完成全量索引更新。如果是刚完成发布操作,先耐心等待一段时间后再尝试搜索。

2. 检查Scala构件的命名与配置

确认你的build.sbt中是否正确配置了Scala交叉编译相关参数,确保artifact ID的格式符合Maven中央的索引规范:

// 确保开启交叉路径(默认是true,但最好显式确认)
crossPaths := true
// 指定正确的Scala版本
scalaVersion := "2.13.12" // 替换为你实际使用的版本

带Scala版本后缀的构件(如_2.13)需要符合sbt的标准命名规则,否则索引器可能无法识别。

3. 验证POM文件的完整性

登录Sonatype Nexus后台,找到Scala子模块的发布记录,检查其POM文件是否包含必要的元数据:

  • 确认groupId、artifactId、version字段正确无误
  • 确保POM中包含<name>、<description>、<url>等基础描述字段,缺失这些可能导致索引器跳过抓取

4. 确认Sonatype发布流程完成

除了执行sbt publishSigned,还要在Sonatype Nexus中完成Close和Release操作:

  • Close操作会触发构件的校验(包括签名、POM完整性等)
  • Release操作才会将构件正式同步到Maven中央仓库并触发索引
    如果只执行了publishSigned而未完成Release,构件可能仅存在于Sonatype的暂存仓库,虽然能通过直接路径访问,但不会被搜索索引收录。

5. 调整搜索关键词尝试

尝试直接搜索完整的artifact ID(如cloakroom-scala_2.13),而非仅用cloakroom模糊搜索。部分情况下,模糊搜索会过滤掉带版本后缀的构件名称。


内容的提问来源于stack exchange,提问作者assaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:27:38