Я поставил несколько задач по компиляции проекта libGdx в Android Studio. То, что я хочу, это то, что динамический c файл "version.txt" создается в папке ресурсов. Этот файл должен быть доступен в окончательном выводе jar.
Вот как я выполнил настройку:
libGdx предоставляет мне задачу dist
. Кроме того, я создал две задачи: buildDebugVersion
и buildReleaseVersion
.
Обе должны создать version.txt
, одна из которых содержит отладочную информацию, а другая - нет отладочной информации.
libGdx ' исходная задача dist
task dist(type: Jar) {
manifest {
attributes 'Main-Class': project.mainClassName
}
//processResources.dependsOn tasks.updateVersionFileRelease
dependsOn configurations.runtimeClasspath
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
with jar
}
мои задачи отладки / выпуска
task createDebugVersion {
outputs.upToDateWhen { false }
doFirst {
modifyVersionFile(1)
}
}
task createReleaseVersion {
outputs.upToDateWhen { false }
doFirst {
modifyVersionFile(0)
}
}
зависимости задач
Чтобы все это работало в правильном порядке, я создал
createDebugVersion.finalizedBy(tasks.dist)
createReleaseVersion.finalizedBy(tasks.dist)
dist.mustRunAfter(tasks.createDebugVersion, tasks.createReleaseVersion)
Я ожидал:
- createdebug / release запускается и создает файл
- THEN dist run
Это, кажется, происходит, когда я смотрю на вывод. Вы можете видеть, какой файл генерируется:
Вот вывод, когда я его запускаю:
> Task :desktop:createReleaseVersion
Generated version file is:
--------------------------
Version=0.1.113
BuildDate=2020-04-24
--------------------------
BUILD SUCCESSFUL in 5s
10 actionable tasks: 9 executed, 1 up-to-date
... но когда я запускаю программу, я вижу эту информацию о версии:
Файл, содержащийся в банке, всегда 1 или 2 версии за , как если бы он был извлечен из какая-то папка кеша.
Меня пугает вопрос: сколько других ресурсов сейчас тоже на 1 или 2 версии? Откуда gradle берет этот файл?
Пока я не смог его найти.
что я уже пробовал
Я запускаю это через .cmd
скрипт , Перед запуском задачи gradle я уже удалил все папки сборки (и проверил ее, все удаляется перед началом сборки)
(переменная% TASK% содержит либо createDebugVersion
, либо createReleaseVersion
)
ECHO Forcing resources rebuild
RD /S /Q .\desktop\build
RD /S /Q .\android\build
ECHO Compiling distribution version of %GAMENAME%...
CALL gradlew desktop:clean desktop:build %TASK% --rerun-tasks
Но, тем не менее, из некоторого "призрачного-галактического пространства", файл, который имеет две сборки, берется откуда-то и помещается в банку ...
Любая помощь очень ценится!