Как перезаписать файлы ресурсов зависимостей проекта во время сборки с помощью gradle - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю в многомодульном приложении 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.

...