ForgeGradle отказывается работать.

Версия Minecraft
1.6.4
API
Forge
Есть опыт программирования и алгоритмизации, но в моддинге новичек. Потратил уже как минимум 14 плотных часов в попытках заставить gradle благополучно собрать билд. Я конечно человек терпеливый, но ситуация неприемлимая. Следовал множеству гайдов, в которых все максимально простенько делалось в два клика. У меня же карнавал ошибок. Ставил JDK 17, потом даунгрейдил до 8. Отдельно закачал gradle последней версии (7.3.3 вроде) в отдельную папочку, потом услышал про ее несовместимость с JDK 8 и задаунгрейдил до 4.8.1. Потом вообще выяснилось что и качать градл этот отдельно и не нужно, в forge src все есть, удалил ее. Тема крайне мутная. Была проблема с http/https, в блокноте что нашел то исправил. Все еще ни малейшего понятия, какую версию gradle в gradle-wrapper.properties ставить вместо 1.8 (которая по умолчанию в src для 1.6.4) и нужно ли ее вообще менять, но пока поставил на 4.8.1. Мало того в файле билда нужно было шаманить с устаревшими ссылками на maven. Не знаю что за цифру ставить в classpath 'net.minecraftforge.gradle:ForgeGradle:1.0-SNAPSHOT' вместо 1.0, замечал множество раз на ее месте 1.2 или 1.1. Вот как сейчас выглядит мой build.gradle:

Код:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "https://maven.minecraftforge.net"
        }
        maven {
            name = "maven"
            url = "https://repo1.maven.org/maven2"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

version = "1.6.4-1.0"
group= "net.minecraftforge" // https://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

repositories {
    maven {
        name = "maven"
        url = "https://repo1.maven.org/maven2"
    }
}

minecraft {
    version = "1.6.4-9.11.1.964"
}

processResources
{
    // 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'
    }
}


На данный момент ошибка при попытках ввести будь то gradlew setupDecompWorkspace, будь то gradlew setupDevWorkspace eclipse:


Код:
D:\Java\Minecraft Modding\FW03>gradlew setupDevWorkspace eclipse

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'FW03'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT.
     Required by:
         project :
      > Could not resolve net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT.
         > Unable to load Maven meta-data from https://maven.minecraftforge.net/net/minecraftforge/gradle/ForgeGradle/1.2-SNAPSHOT/maven-metadata.xml.
            > Could not get resource 'https://maven.minecraftforge.net/net/minecraftforge/gradle/ForgeGradle/1.2-SNAPSHOT/maven-metadata.xml'.
               > Could not GET 'https://maven.minecraftforge.net/net/minecraftforge/gradle/ForgeGradle/1.2-SNAPSHOT/maven-metadata.xml'.
                  > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org




Иногда ругается и так (вероятно жалуется на версию gradle в gradle-wrapper.properties):

Код:
D:\Java\Minecraft Modding\forge-1.7.10-TEST>gradlew setupDevWorkspace eclipse
Downloading https://services.gradle.org/distributions/gradle-2.0-bin.zip

Exception in thread "main" javax.net.ssl.SSLException: Received fatal alert: protocol_version
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:56)
        at org.gradle.wrapper.Download.download(Download.java:42)
        at org.gradle.wrapper.Install$1.call(Install.java:57)
        at org.gradle.wrapper.Install$1.call(Install.java:44)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
        at org.gradle.wrapper.Install.createDist(Install.java:44)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)


При переходе на https://maven.minecraftforge.net вообще требует логин и пароль, в логе это тоже иногда упоминалось.

Надеюсь на вашу помощь.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Проблема у тебя чисто джавашная - хоть я и полностью согласен что gradle дурацкая вещь на которую всё время убиваешь часы времени, тут ни разу не он - у тебя ssl сертификаты в системе/джаве то ли не установлены, то ли устарели, то ли фиг его знает что с ними.

Чисто джава не может подключиться к https, чтобы в форджевого мавена скачать штуки, потому что ошибки ssl.
Хотя возможно я не прав, и это их сервера не хотят работать (были прецеденты) но это починилось бы со временем, и плюс было бы у всех.

Я только слышал о такой проблеме, у меня ни разу не было, я сижу на линуксе - обычно должно чиниться обновлением jdk (до майна 1.17 - только jdk8), или обновлением системы тоже - не твой вариант, судя по тому что ты это всё уже пробовал.
 

tox1cozZ

aka Agravaine
8,456
598
2,893
Полежал немного, включил комп и проверил градл на работоспасобность, мало ли. Предыдущая ошибка исчезла, запустилась медленная загрузка пакета на 13 мб. При этом загрузка шла настолько медленно, что градл несколько раз ругался на нестабильность сети и с некой ошибкой загрузку прерывал. Наконец, она завершилась успехом и выдала новую ошибку:

Код:
D:\Java\Minecraft Modding\FW03>gradlew setupDevWorkspace eclipse

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Java\Minecraft Modding\FW03\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating root project 'FW03'.
> Failed to apply plugin [id 'forge']
   > You must set the Minecraft Version!
      > java.lang.NullPointerException (no error message)

Вроде как финишная прямая, причем ошибка такая возникала не только у меня, тем не менее угробил уже достаточно времени и адекватного решения все еще не нашел.

Кстати, информация про версии ForgeGradle:X.X-SNAPSHOT отсутствует, но методом тыка убедился, что 1.0 и 1.1 вариант абсолютно не рабочий, а на 2.0 (или 2.3, не помню) терпения не хватило, загрузка еще медленнее чем прежде. Оставил1.2.

Если кто знает как ошибку пофиксить - буду благодарен.
 
1,088
72
378
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Ошибка проверки сертификата, а всё потому что где-то очень древний JDK скачали. У Java своё хранилище корневых сертификатов, системное не используется.

Проблема у тебя чисто джавашная - хоть я и полностью согласен что gradle дурацкая вещь на которую всё время убиваешь часы времени, тут ни разу не он - у тебя ssl сертификаты в системе/джаве то ли не установлены, то ли устарели, то ли фиг его знает что с ними.
Не дурацкая, если уметь правильно готовить. Дурацкий может быть только Forge и его команда, забивающая болт на поддержку старых версий игры. В этом инструменте сборки хотя бы синтаксис для настройки нормальный, любые хотелки легко реализуются написанием кода прямо в скрипте сборке. Это не мерзкий XML, что использовался в Ant и Maven.

You must set the Minecraft Version! > java.lang.NullPointerException (no error message)
Пропущена секция minecraft в вашем build.gradle

Гугление ошибок, только гугление вам поможет.
 
Просто версия кубов 1.6.4 уже старая, стоит скачивать все зависимости руками и компилировать все через javac. Лично мне помогло. У меня есть несколько банников для компиляции таким способом. Также создаю нативы с помощью javah.
 
Сверху