Мы фильтруем файл xml, заменяя некоторые маркеры свойствами градиента.Задача копирования и фильтрации градиента не выполнена
Но фильтрация (т. Е. Задача копирования) не выполняется, когда мы просто изменяем свойства в нашем файле build.gradle.
Как нам изменить наш скрипт так, чтобы фильтрация выполнялась каждый раз или, по крайней мере, когда шаблон и/или build.gradle были изменены.
Это мы имеем:
war.doFirst {
delete 'src/main/webapp/WEB-INF/appengine-web.xml'
copy {
from 'build.gradle'
from 'src/main/webapp/WEB-INF/'
into 'src/main/webapp/WEB-INF/'
include '*-template.*'
rename { String fileName ->
fileName.replace('-template', '')
}
expand(gaeApp: "$gaeApp", gaeAppVersion: "$gaeAppVersion")
}
}
Я просто побежал некоторые испытания, где фильтрация работала. Я смущен ... Я уверен, что иногда это не так!
Таким образом, после хорошего входа с Вампиров мы попытались это
war {
inputs.file "build.gradle"
exclude 'src/main/webapp/WEB-INF/appengine-web.xml'
// filesMatching('src/main/webapp/WEB-INF/**/*-template.*') {
filesMatching('**/*-template.*') {
println "WAR template: $it"
rename { it.replace '-template', '' }
expand gaeApp: gaeApp, gaeAppVersion: gaeAppVersion
}
}
А доллар и десять центов для всех, кто может объяснить, почему filesMatching('src/main/webapp/WEB-INF/**/*-template.*')
не работает!
НО БОЛЬШАЯ проблема заключается в том, что даже если файлыMatching обнаруживает файл шаблона, appengine-web.xml
, который находится внутри WAR, не является обработанной версией appengine-web-template.xml
.
Только что столкнулся с проблемой с этим решением. Он не копирует/фильтрует, когда мы вносим изменения в build.gradle. –
Зависит от того, что вы меняете. Для выполнения задачи входы и/или выходы должны измениться. Поэтому, если вы хотите всегда запускать задачу после изменения файла градации, добавьте файл градации к входам с помощью 'inputs.file ...'. Если вы просто хотите убедиться, что он запущен в следующий раз, когда кто-то выполнит его после вашего изменения, потому что вы изменили e. г. шаблон сопоставления либо добавляет шаблон соответствия к входам, как переменные или версии, к задаче типа 'inputs.property 'version', 1', которую вы вручную увеличиваете после того, как вы изменили настройку задачи, не влияя на входы/выходы. – Vampire
КПП. если ответ вам помог, пожалуйста, прочитайте и повинуйтесь http://stackoverflow.com/help/someone-answers (упрек отсутствовал). И почему вы не приняли ответа? Это нехорошее поведение. Ответ на этот вопрос вполне подходит. – Vampire