Gradle не находит плагин forge при сборке

Версия Minecraft
1.7.10
API
Forge
13
1
2
Приветствую
Я тотальный нубас в моддинге, так что вопрос может показаться банальным)

Пытаюсь сбилдить проект. build.gradle написан не мной, но у того, кто писал, всё отлично работает. У меня же терминал выдает следующую историю:
что-то страшное...:
* What went wrong:
A problem occurred evaluating root project 'MCHeli-Fixes-master'.
 Failed to apply plugin 'forge'.
 Plugin with id 'maven' not found.

В файле build.gradle терминал ругается вот на эту строчку: apply plugin: 'forge'. Я читал тему про установку кастомного ForgeGradle, но там инструкция, рассчитанная на создание проекта "с нуля". Можно ли как-то установить его в уже имеющийся проект, и если да, то как это сделать? Или я вообще не туда смотрю и проблема в чём-то другом?
 
Решение
Решение пришло откуда не ждали. В gradle-wrapper.properties была написана версия Градла 3.0. Поменял на 3.3 – всё сбилдилось (хотя терминал ругался, что нужен четвёртый Градл).
UPD: ниже посоветовали ставить 4.4.1 – максимальную версию, на которой работает ForgeGradle
13
1
2
На maven-publish поменяй.
Порылся в build.gradle – нигде название 'maven' не фигурирует. Прикрепляю сам файл
build.gradle:
buildscript {
    repositories {
        maven { url = 'https://maven.minecraftforge.net/' }
        maven { url = 'https://plugins.gradle.org/m2' }
        mavenCentral()
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

def jsonFile = file('./src/main/resources/mcmod.info')
def parsedJson = new groovy.json.JsonSlurper().parseText(jsonFile.text)
version = parsedJson.version
group = "mcheli" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "McHeli"

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'

minecraft {
    version = "1.7.10-10.13.4.1558-1.7.10"
    runDir = "eclipse"
}

// A little hack to fix codechicken's crazy maven structure (at least in 1.7.10)
eclipse.classpath.file.whenMerged { cp ->
    // Find all codechicken source jars
    def srcent = cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-src.jar") }
    
    // Remove them from classpath
    cp.entries.removeAll srcent

    // Map the source entries to their dev counterparts based on basename
    Map<String, File> srcmap = new HashMap<String, File>()
    srcent.forEach { entry ->
        def file = new File(entry.path)
        srcmap.put(file.getName().replace("-src.jar", "-dev.jar"), file)
    }
    
    // Create file reference factory
    def fileref = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory()
    
    // Find all codechicken development jars
    cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry ->
        File srcmapping = new File(entry.path) // Initialize the srcmapping from the dev jar path
        srcmapping = srcmap.get(srcmapping.getName()) // Transform it using the sourcemap
        entry.sourcePath = fileref.fromFile(srcmapping) // Set the source path
    }
}

repositories {
    maven {
        name = 'ModMaven'
        url = 'https://modmaven.dev'
    }
    //maven {
    //    name = "CurseForge"
    //    url = "https://minecraft.curseforge.com/api/maven/"
    //}
}

dependencies {
//    compile 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev'
//    compileOnly 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:src'
//
//    compile 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev'
//    compileOnly 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:src'
//
//    compile 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev'
//    compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src'

    //compileOnly 'inventory-tweaks:InventoryTweaks:1.62+beta.84:api'
}

compileJava.options.encoding = 'UTF-8'

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'
    }
}

task version {
    doFirst {
        println(sourceSets.main.resources.srcDirs)
        println project.version
    }
}

При попытке сбилдить заново пишет Could not determine java version from '18.0.1'. Старых SDK нет, к актуальному (версия такая, какую пишет терминал) указана переменная JAVA_HOME, а в Path дописан путь %JAVA_HOME%\bin.
 
13
1
2
Для 1.7.10 нужна Java 8, а не последняя 18-я.
Установил 8, в Project Structure её указал, делаю .\gradlew build – результат тот же: Could not determine java version from '18.0.1'. В ответ на gradle всё так же приходит
Java:
Failed to apply plugin 'forge'.
 Plugin with id 'maven' not found.

Полагаю, проще сначала починить второе. Потому что даже если ребилд получится, грабля всё так же не сможет найти нужные плагины
 

TheAndrey

Редактор учебника
1,071
72
372
Если из командной строки запускаешься, а не из IDE, то действительно надо указывать путь к JDK.
Переменную окружения можно назначить только для текущего сеанса вводи команд, а далее свои команды
Код:
// В cmd
SET JAVA_HOME = C:\path\to\jdk1.8
// В PowerShell
$env:JAVA_HOME = C:\path\to\jdk1.8
 
13
1
2
Решение пришло откуда не ждали. В gradle-wrapper.properties была написана версия Градла 3.0. Поменял на 3.3 – всё сбилдилось (хотя терминал ругался, что нужен четвёртый Градл).
UPD: ниже посоветовали ставить 4.4.1 – максимальную версию, на которой работает ForgeGradle
 
Последнее редактирование:
Сверху