执行gradlew setupDecompWorkspace创建MC Forge工作区遇认证错误求助
问题描述
我尝试执行命令gradlew setupDecompWorkspace创建MC模组开发工作区,已从Forge官网下载1.8.9-11.15.1.2318版本的MDK压缩包并解压,执行命令后返回以下错误:
A problem occurred configuring root project 'MCMods'. > Could not resolve all dependencies for configuration ':classpath'. > Could not resolve net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT. Required by: :MCMods:unspecified > Could not resolve net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT. > Unable to load Maven meta-data from http://files.minecraftforge.net/maven/net/minecraftforge/gradle/ForgeGradle/2.1-SNAPSHOT/maven-metadata.xml. > Could not GET 'http://files.minecraftforge.net/maven/net/minecraftforge/gradle/ForgeGradle/2.1-SNAPSHOT/maven-metadata.xml'. > peer not authenticated > Could not resolve net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT. > Unable to load Maven meta-data from https://jcenter.bintray.com/net/minecraftforge/gradle/ForgeGradle/2.1-SNAPSHOT/maven-metadata.xml. > Could not GET 'https://jcenter.bintray.com/net/minecraftforge/gradle/ForgeGradle/2.1-SNAPSHOT/maven-metadata.xml'. > peer not authenticated
我已经安装Java SE Development Kit 8u5并配置了%JAVA_HOME%和系统Path环境变量,请问该如何解决这个问题?
我的build.gradle配置文件如下:
// For those who want the bleeding edge buildscript { repositories { jcenter() maven { name = "forge" url = "http://files.minecraftforge.net/maven" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' } } apply plugin: 'net.minecraftforge.gradle.forge' /* // for people who want stable - not yet functional for MC 1.8.8 - we require the forgegradle 2.1 snapshot plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" } */ version = "1.0" group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "modid" minecraft { version = "1.8.9-11.15.1.2318-1.8.9" runDir = "run" // the mappings can be changed at any time, and must be in the following format. // snapshot_YYYYMMDD snapshot are built nightly. // stable_# stables are built at the discretion of the MCP team. // Use non-default mappings at your own risk. they may not allways work. // simply re-run your setup task after changing the mappings to update your workspace. mappings = "stable_20" // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } dependencies { // you may put jars on which you depend on in ./libs // or you may define them like so.. //compile "some.group:artifact:version:classifier" //compile "some.group:artifact:version" // real examples //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, // except that these dependencies get remapped to your current MCP mappings //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' // for more info... // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else, thats not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } }
解决方案
1. 升级JDK版本
peer not authenticated错误核心原因是JDK 8u5版本过旧,内置的根证书库已失效,无法验证当前HTTPS服务器的证书。直接升级JDK 8到最新补丁版本(如8u391),新版本会包含更新的信任证书,可解决SSL验证问题。
2. 替换失效仓库并修改协议
原配置中的jcenter()已停止服务,且Forge仓库使用HTTP协议存在安全风险,修改buildscript部分的仓库配置:
buildscript { repositories { mavenCentral() maven { name = "forge" url = "https://maven.minecraftforge.net/" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' } }
- 用
mavenCentral()替代废弃的jcenter() - 将Forge仓库URL改为HTTPS协议的
https://maven.minecraftforge.net/
3. 清理Gradle缓存
缓存的失效依赖可能导致问题,执行以下命令清理后重新运行:
gradlew clean gradlew setupDecompWorkspace --refresh-dependencies
4. 临时跳过SSL验证(不推荐)
若以上方法无法快速生效,可临时添加参数让Gradle跳过SSL验证,命令改为:
gradlew setupDecompWorkspace -Dorg.gradle.jvmargs="-Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Dssl.SocketFactory.provider=com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl"
注意:此方法降低安全性,仅作为临时应急方案,后续仍需升级JDK或修复证书问题。
内容的提问来源于stack exchange,提问作者Karafakeu
相关产品推荐
相关产品推荐

