如何在Gradle Tomcat插件中使用外部化配置文件?

时间:2013-02-28 08:16:25

标签: tomcat configuration classpath gradle gradle-tomcat-plugin

问题。我有各种特定于环境的配置文件,我想在运行时包含在类路径中,但我不希望这些文件成为WAR本身的一部分。例如,我有一个log4j.xml文件用于启用调试的开发环境,以及一个包含许多特定于环境的凭据,端点等的属性文件。

我希望这些在WAR之外,因为我想发布相同的WAR I测试,而不是构建单独的特定于环境的WAR。我可能在WAR中包含多个特定于环境的配置集(类似于Maven和Spring提供的配置文件功能),但我不愿意。

独立Tomcat具有shared.loader功能(在catalina.properties中),Jetty具有extraClasspath,但我不知道如何使用Gradle Tomcat插件执行此操作。有办法吗?

相关帖子。以下帖子是相关的,但它们似乎涉及将配置文件复制到最终被拉入WAR文件的位置。

2 个答案:

答案 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上为它打开一个问题就会很棒。