Gradle执行:nodeSetup任务报错,获取Node.js资源遇403
问题解决:Gradle构建':nodeSetup'任务403错误及Kotlin依赖问题
针对':nodeSetup' 403 Forbidden错误
报错核心是旧版gradle-node-plugin默认通过Ivy格式解析Node.js依赖,但目前nodejs.org已不再提供对应版本的ivy.xml文件,导致请求返回403。解决方法是强制插件使用Maven格式的元数据:
修改build.gradle中的node配置块,添加指定下载源的配置:
node { version = '14.19.3' download = true // 强制使用Maven格式解析依赖,避免请求ivy.xml distribution = 'https://repo1.maven.org/maven2/org/nodejs/node/${version}/node-${version}-${os}-${arch}.tar.gz' }
若上述配置仍有问题,可直接指定Node.js的下载URL绕开依赖解析逻辑:
node { version = '14.19.3' download = true downloadUrl = 'https://nodejs.org/dist/v14.19.3/node-v14.19.3-${os}-${arch}.tar.gz' }
针对新版插件的Kotlin NoClassDefFoundError问题
你使用的Gradle 3.1版本过于老旧,gradle-node-plugin 3.5.1依赖较高版本的Kotlin运行时,但Gradle 3.1本身不兼容这些依赖,有两种解决方向:
- 降级插件版本:继续使用
2.2.4版本插件,配合上面的Maven格式配置即可解决403问题,无需升级Gradle。 - 升级Gradle版本:将Gradle升级到5.0及以上版本(推荐5.6+),新版Gradle对Kotlin支持更好,可兼容
gradle-node-plugin 3.5.1。
额外验证步骤
- 清理Gradle缓存:执行命令
./gradlew clean build --refresh-dependencies,避免缓存的旧依赖元数据干扰。 - 检查网络环境:确保构建机器能正常访问
nodejs.org和repo1.maven.org,若有代理需在gradle.properties中配置代理信息。
内容的提问来源于stack exchange,提问作者Jack Cui
相关产品推荐
相关产品推荐

