Я пытаюсь заменить файл ресурсов в моей плагине WAR с помощью Gradle.Gradle заменит файл ресурсов плагином WAR
В принципе у меня есть два ресурса файла:
database.properties
database.properties.production
То, что я хочу добиться, это заменить 'database.properties' с 'database.properties.production' в конечном файле WAR под WEB -INF/классы.
Я пробовал много вещей, но наиболее логичным для меня было следующее, которое не работает:
war {
webInf {
from ('src/main/resources') {
exclude 'database.properties'
rename('database.properties.production', 'database.properties')
into 'classes'
}
}
}
Но это вызывает все другие файлы ресурсов, чтобы быть дубликатом, в том числе дубликата database.properties (два разные файлы с тем же именем) и все еще database.properties.production находится в WAR.
Мне нужно чистое решение без дубликатов и без database.properties.production в WAR.
Только что попробовал, и это не работает. Похоже, это не имеет никакого эффекта. : S –
Я обновил код и подтвердил, что он работает. В двух словах, изменяя существующую конфигурацию (в этом случае конфигурация, выполненная плагином 'war'), которая не соответствует вашим потребностям, может быть сложной. Иногда лучше решать проблему по-разному. В этом случае одной альтернативой может быть удаление «неправильного» файла (и переименование другого) в 'processResources.doLast' {...}. Или вы можете помещать файлы где-то, кроме 'src/main/resources', и включать их вручную по мере необходимости (' war.webInf.from ... '). Какое решение лучше всего зависит от ваших конкретных потребностей (интеграция IDE и т. Д.). –
Это сработало. Благодарю. Причина, по которой я выбираю этот метод, заключается в том, что он требует минимальной работы. Я не хочу сохранять свойства в отдельном месте. С помощью этого метода, когда я работаю с моей IDE, мой код видит тестовую базу данных в database.properties, и когда я создаю свою WAR, я знаю, что настраиваю производственную базу данных. –