Gradle 2.5Gradle: Исключить отдельные файлы ресурсов в сборке
У меня есть несколько файлов пакета ресурсов. Некоторые из них я хочу исключить из упаковки в файл jar адресата, потому что они не содержат еще разрешенных переводов.
Согласно документации и примеров, которые я нашел меня эту директиву:
sourceSets {
main {
resources {
exclude 'mail/mailtext_it.properties'
}
}
}
и утверждая, что эта директива будет корректно распечатав набор файлов основных ресурсов:
processResources
{
afterEvaluate
{
println "resource files (in processResources): " + sourceSets['main'].resources.getFiles()
}
}
При запуске «Уборка градиентной сборки», печать из набора ресурсов действительно является тем, что я ожидаю (исключенные файлы НЕ перечислены там), но папка build/resource/все еще содержит файлы, и они также присутствуют в контейнере назначения.
Что мне не хватает? Какая задача отвечает за копирование файлов ресурсов в каталог сборки, на основе какого источника?
только предположение, я полагаю, что за исключением файлов из множества источников просто сделать их не перерабатывается на этапе обработки ресурсов. Чтобы исключить их из архива. Если вам нужно исключить их из jar-файла, вам нужно настроить блок 'exclude' внутри блока' jar'. [Здесь] (https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html) являются полезными документами. – Opal
До сих пор я понимаю: processResources копирует (и фильтрует) файлы в каталог сборки (поскольку компиляционная задача компилирует исходные файлы в каталог сборки), а задача jar собирает подготовленные артефакты (скомпилированные, отфильтрованные) из сборки dir и упаковывает их в банку. Неправильно ли это изображение? – Heri
Работает так, как вы писали. Не знаю, почему скрипт не может правильно исключить файлы - [demo] (https://github.com/Opalo/stackoverflow/tree/master/33347557). Файлы 'lol' и' lol3' должны быть включены в финальную банку. – Opal