Как я могу использовать внешние файлы конфигурации с плагином Gradle Tomcat?

Проблема. У меня есть различные специфические для среды файлы конфигурации, которые я хочу включить в путь к классам во время выполнения, но я не хочу, чтобы они были частью самой WAR. Например, у меня есть log4j.xml файл для среды разработки с включенной отладкой и файл свойств с множеством учетных данных, конечных точек и т. д.

Я хочу, чтобы они выходили за пределы WAR, потому что я хочу выпустить тот же тест WAR, который я тестировал, вместо того, чтобы создавать отдельные WAR-ориентированные для среды. Я мог бы потенциально включить в WAR несколько наборов настроек для конкретной среды (аналогично возможности профилей, которую предоставляют и Maven, и Spring), но я предпочитаю этого не делать.

Автономный Tomcat имеет shared.loader особенность (в catalina.properties), а у причала есть extraClasspath, но я не знаю, как это сделать с помощью плагина Gradle Tomcat. Есть ли способ?

Похожие сообщения. Следующие сообщения связаны между собой, но, похоже, они связаны с копированием файлов конфигурации в места, которые в конечном итоге попадают в файл WAR.

2 ответа

Выяснили способ сделать это:

buildscript {
    repositories { mavenCentral() }
    dependencies {
        classpath "org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7"
        classpath files("/path/to/config/files")
    }
}

Вы можете попробовать использовать собственность additionalRuntimeJars за это. Название немного неправильное, но цель состоит в том, чтобы добавить внешние JAR-файлы в загрузчик классов Tomcat.

[tomcatRun, tomcatRunWar]*.additionalRuntimeJars << file("/path/to/config/files")

или же

[tomcatRun, tomcatRunWar]*.additionalRuntimeJars = [file("/path/to/config/files")]

Я не уверен, что это сработает, но стоит попробовать. Если это не сработает, было бы здорово, если бы вы могли открыть для него проблему на GitHub.

Другие вопросы по тегам