Я работаю в многомодульном приложении Gradle, где проект B зависит от проекта A и импортируется как зависимости как таковые:
compile project(":modules:lib-module")
Проект A, назовем lib-module
, в этом случае содержит XML-файлы для настройки Log4J2, которые обычно используются без изменений в зависимых проектах. В этом случае, однако, мне нужно полностью перезаписать эти файлы из тех, которые находятся в lib-module
.
Я знаю, что могу написать код для обработки этого в рамках начальной загрузки модуля, в котором настроен Log4J2, однако я смотрю, есть ли способ перезаписать эти файлы во время сборки, используя Gradle, не имея добавить дополнительный код в само приложение.
Поскольку этот конкретный модуль используется как лямбда-функция AWS, мы используем специальный скрипт сборки:
task buildZip(type: Zip) {
from compileJava
from processResources
into('lib') {
from configurations.runtime
}
}
build.dependsOn buildZip
Я надеялся, что смогу обновить подзадачу from processResources
, чтобы скопировать файлы ресурсов этого модуля в расположение файлов ресурсов зависимости, но это не сработало, как я ожидал.
Я исследовал содержимое jar-файлов внутри папки "lib", и они содержат исходные файлы XML, скорее всего потому, что у этого модуля есть собственный файл build.gradle
.
Есть ли способ фактически полностью перезаписать файлы ресурсов зависимого проекта в файле build.gradle
родительского проекта?
ПРИМЕЧАНИЕ. Я специально не ставил теги AWS-Lambda или Log4J2, поскольку это не имеет отношения к этому вопросу, но хотел предоставить контекст для читателя. Этот вопрос только о том, как решить эту проблему с Gradle.