В настоящее время я работаю над проектом. Ресурсы для проекта содержат много json-файлов, все они попадают в финальную банку. Я уже обрабатываю resouces. Подобно переименованию файлов и замене некоторых строк в некоторых других файлах. Таким образом, задача processResources
уже используется.gradle - Минимизировать ресурсы json в processResources
Теперь вопрос в том, как я мог бы расширить его, чтобы он минимизировал все файлы json. Так как у Groovy есть утилиты json, возможность получить содержимое файлов и их замену в месте назначения должна быть достаточной, чтобы все работало.
Это мой текущий processResources
задача:
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
}
// Minify json resources
from(sourceSets.main.resources.srcDirs) {
include "**/*.json"
// Minify every file here
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude "mcmod.info"
exclude "**/*.json"
}
rename "(.+_at.cfg)", 'META-INF/$1'
from MainDirResources
}
Минимизация файлы должны работать с любым из следующих двух строк:
JsonOutput.toJson(new JsonSlurper().parseText(<file content here>))
JsonOutput.toJson(new JsonSlurper().parse(<file here>))
Так что я должен сделать, чтобы получить содержание все файлы или все экземпляры самих файлов и изменить их содержимое в выходном каталоге?
Gradle может запускать исполняемый файл, вы можете написать сценарий оболочки, чтобы свести к минимуму файлы json (удалить новые строки), а затем выполнить его в своем скрипте gradle. –
@AlecZhang Я бы хотел избежать использования оболочки, где могу. Также, как я сказал, минимизация самого JSON не должна быть сложной: http://groovy-lang.org/json.html – BrainStone
Как вы собираетесь их минимизировать? –