升级Kotlin至1.8.20后,NexusDeploy发布任务执行失败求助
Kotlin 1.8.20升级后GitHub Action发布任务找不到Jar文件的解决办法
核心问题分析
升级Kotlin插件到1.8.20后,GitHub Action中发布任务找不到Jar文件但本地构建正常,大概率是硬编码路径未关联Gradle任务依赖或CI环境执行顺序/配置与本地不一致导致的。
1. 替换硬编码Jar路径为Gradle任务引用
不要直接指定固定路径的Jar文件,改用Gradle内置的jar任务输出,自动关联正确的工件位置,避免版本升级带来的路径变更:
publishing { publications { NexusDeploy(MavenPublication) { artifact jar // 直接引用jar任务的输出产物 } } }
如果需要自定义Jar文件名,在jar任务中配置即可:
jar { archiveBaseName = 'my-jar' archiveVersion = version }
2. 确保发布任务依赖Jar构建流程
在GitHub Action的执行命令中,明确先执行build任务(包含Jar生成)再执行发布:
./gradlew build publish
也可以在Gradle脚本中显式添加任务依赖,强制发布前先完成Jar构建:
tasks.named('publishNexusDeployPublicationToNexusRepository') { dependsOn tasks.named('jar') }
3. 对齐GitHub Action与本地的JDK环境
Kotlin 1.8.20对JDK版本有要求(需JDK 8及以上,推荐JDK 11/17),检查GitHub Action中使用的JDK版本是否与本地一致,可在Action中指定匹配版本:
- name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin'
4. 验证Jar任务的实际输出
在GitHub Action中添加调试步骤,确认Jar是否生成及实际路径:
./gradlew jar ls -la build/libs/
这一步能快速定位Jar是否真的生成,以及路径是否符合预期。
内容的提问来源于stack exchange,提问作者kwarter
相关产品推荐
相关产品推荐

