2

問題。実行時にクラスパスに含めたいさまざまな環境固有の構成ファイルがありますが、これらを WAR 自体の一部にしたくありません。たとえば、log4j.xmlデバッグがオンになっている開発環境用のファイルと、多くの環境固有の資格情報、エンドポイントなどを含むプロパティ ファイルがあります。

個別の環境固有の WAR を構築するのではなく、テストする同じ WAR をリリースしたいので、これらを WAR の外に置きたいと考えています。複数の環境固有の構成セットを WAR に含めることもできますが (Maven と Spring の両方が提供するプロファイル機能と同様)、私はそうしないことを好みます。

スタンドアロンの Tomcat にはshared.loader(の) 機能が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 に答える