Как я могу использовать внешние файлы конфигурации с плагином 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.