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

使用JReleaser发布到Maven Central时遇‘sonatype未解析引用’问题

解决JReleaser Kotlin DSL中Sonatype Portal配置未识别的问题

问题根源

JReleaser的Groovy DSL与Kotlin DSL语法存在差异:Groovy里用sonatype闭包配置Sonatype Portal的逻辑,在Kotlin DSL中需要通过portal()函数来实现,而非直接使用sonatype代码块。

修正后的配置代码

将原代码中的sonatype块替换为portal()调用,同时注意Kotlin DSL中属性赋值需用.set()方法,修正后的root-publication.gradle.kts如下:

// root-publication.gradle.kts (in buildSrc/src/main/kotlin)

plugins {
    `maven-publish`
    id("org.jreleaser")
}

allprojects {
    group = "io.github.aeckar"
    version = "1.0.0"
}

jreleaser {
    deploy {
        maven {
            mavenCentral {
                portal {    // 替换原sonatype块为portal()函数
                    setActive("ALWAYS")
                    url.set("https://central.sonatype.com/api/v1/publisher")
                    stagingRepository.set("target/staging-deploy")
                }
            }
        }
    }
}

额外注意点

  • 确保使用的JReleaser版本支持Sonatype Portal配置,建议升级到最新稳定版
  • 无需额外应用Nexus Publish插件,JReleaser的Maven部署模块已内置相关功能
  • Kotlin DSL中所有配置属性都需要通过.set()方法赋值,这是与Groovy DSL直接赋值的核心区别

内容的提问来源于stack exchange,提问作者Angel E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:43:12