问题。我有各种特定于环境的配置文件,我想在运行时包含在类路径中,但我不希望这些文件成为WAR本身的一部分。例如,我有一个log4j.xml
文件用于启用调试的开发环境,以及一个包含许多特定于环境的凭据,端点等的属性文件。
我希望这些在WAR之外,因为我想发布相同的WAR I测试,而不是构建单独的特定于环境的WAR。我可能在WAR中包含多个特定于环境的配置集(类似于Maven和Spring提供的配置文件功能),但我不愿意。
独立Tomcat具有shared.loader
功能(在catalina.properties
中),Jetty具有extraClasspath
,但我不知道如何使用Gradle Tomcat插件执行此操作。有办法吗?
相关帖子。以下帖子是相关的,但它们似乎涉及将配置文件复制到最终被拉入WAR文件的位置。
答案 0 :(得分:2)
想出办法来做到这一点:
buildscript {
repositories { mavenCentral() }
dependencies {
classpath "org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7"
classpath files("/path/to/config/files")
}
}
答案 1 :(得分:0)
您可以尝试使用属性additionalRuntimeJars
。名称有点偏,但目的是将外部JAR添加到Tomcat的类加载器。
[tomcatRun, tomcatRunWar]*.additionalRuntimeJars << file("/path/to/config/files")
或
[tomcatRun, tomcatRunWar]*.additionalRuntimeJars = [file("/path/to/config/files")]
我不确定它是否会起作用,但值得一试。如果这不起作用,那么如果你可以在GitHub上为它打开一个问题就会很棒。