Gradle: изменение переменной в классе при сборке

Версия Minecraft
1.7+
Решение
А replaceIn указал? Я же написал, что не уверен в работоспособности без него (напоминаю, что имя файла без нужно писать пути).

UPD:

Я всегда такой код указываю, чтобы "${version}" в ModInfo на версию из билда заменять:

Код:
minecraft {
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "run"
    replace '${version}', project.version
    replaceIn "ModInfo.java"
}
1,200
37
237
Со строками такое работает, но за остальное не знаю:

Код:
minecraft {
    replace 'цель', 'значение' // ${project.version} подобное тоже работает
    replaceIn 'ИмяКлассаБезПути.java' // Вроде, если не указать, то заменять будет везде, но я не проверял
}

Попробуй что-то вроде
replace 'VARIABLE = false', 'VARIABLE = true'
 
1,200
37
237
А replaceIn указал? Я же написал, что не уверен в работоспособности без него (напоминаю, что имя файла без нужно писать пути).

UPD:

Я всегда такой код указываю, чтобы "${version}" в ModInfo на версию из билда заменять:

Код:
minecraft {
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "run"
    replace '${version}', project.version
    replaceIn "ModInfo.java"
}
 
7,099
324
1,510
Т.е. нужно фулл-строчку писать?
 
1,111
47
420
Окей, а как добавить проверку на то какой билд я запускаю? Юзаю автовырезалка и нужно в зависимости от того что я запускаю (buildClient или buildServer) заменялась строка.
Вопрос философский
Задача: поставить разные флаги перед разными сборками
Проблема: добавить dependsOn нельзя т.к. buildClient исполняются после генерации сурсов
Решение: у граблей есть такая штука как tasksGraph. Там есть метод, который называется по типу whenReady. Вызывается он когда градлу поступил запрос на исполнение таска, и он построил порядок в котором нужно выполнить этот таск и его зависимости.
Так вот, план таков: нужно по завершению постройки графа посмотреть есть ли в нем один из наших тасков(buildClient или buildServer) и, в зависимости от того какой, сетнуть переменную версии или чего то там.

пример типа
Gradle (Groovy):
project.gradle.taskGraph.whenReady {
    if (it.hasTask(gradleTask)) { }
}

Кстати, муны исчезли!
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Такое вот не пашет:
Gradle (Groovy):
project.gradle.taskGraph.whenReady {
    if (it.hasTask(":buildServer")) {
        minecraft {
            replace 'public static final boolean VAR = false;', 'public static final boolean VAR = true;'
            replaceIn "MyClass.java"
        }
    }
}
Проверка срабатывает как надо, но ничего не заменяет.
 
Сверху