2

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

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

Standalone Tomcat 具有该shared.loader功能 (in catalina.properties),而 Jetty 具有extraClasspath,但我不知道如何使用 Gradle Tomcat 插件来做到这一点。有办法吗?

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

4

2 回答 2

2

想出了一个方法来做到这一点:

buildscript {
    repositories { mavenCentral() }
    dependencies {
        classpath "org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7"
        classpath files("/path/to/config/files")
    }
}
于 2013-02-28T09:05:18.703 回答
0

您可以尝试为此使用该属性additionalRuntimeJars。这个名字有点离谱,但目的是将外部 JAR 添加到 Tomcat 的类加载器中。

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

或者

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

我不确定它是否会起作用,但值得一试。如果这不起作用,如果您可以在 GitHub 上为它打开一个问题,那就太好了。

于 2013-02-28T14:50:49.937 回答