Gradle从7.5升级至8.0构建失败:JavaPlugin应用异常
Gradle 8.0升级后JavaPlugin应用失败:JvmPluginsHelper方法签名不匹配的解决办法
问题根源
从错误栈可以明确:nebula的SourceJarPlugin插件在调用Gradle内部API JvmPluginsHelper.configureDocumentationVariantWithArtifact()时,因Gradle 8.0修改了该方法的参数签名,旧版本插件不兼容导致报错,和java-library插件本身无关,是依赖的第三方插件没跟上Gradle版本迭代。
解决步骤
定位项目中的nebula插件
检查build.gradle或settings.gradle里的nebula插件配置,比如:// 插件DSL方式 plugins { id 'nebula.source-jar' version 'x.x.x' } // 或者旧的apply方式 apply plugin: 'nebula.source-jar'升级nebula插件到兼容Gradle 8.0的版本
针对nebula-source-jar插件,需升级到19.0.0及以上版本;如果是使用整套nebula publishing插件,升级到20.0.0及以上版本。修改后的配置示例:plugins { id 'nebula.source-jar' version '19.0.0' }验证修复
执行./gradlew clean build重新构建,确认错误消失。
替代方案(无法升级插件时)
如果因依赖限制不能升级nebula插件,可以直接用Gradle原生功能替换SourceJarPlugin的作用:
// 移除原来的nebula source-jar插件引用 // apply plugin: 'nebula.source-jar' // 原生配置实现源码jar生成 java { withSourcesJar() } // 如果需要发布源码jar,添加以下配置 publishing { publications { mavenJava(MavenPublication) { from components.java } } }
这种方式完全兼容Gradle 8.0,无需依赖第三方插件。
内容的提问来源于stack exchange,提问作者Dha3
相关产品推荐
相关产品推荐

