設定ファイルを外出しに

application.propertiesなどの設定ファイルはwarの中に含めたくない場合が多々あります。
外出ししてクラスパスに含める方法を纏めました。

[広告]
[広告]

context.xmlを作成

・src/main/webapp/META-INF/context.xmlを作成
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resources>
        <PreResources
            className="org.apache.catalina.webresources.DirResourceSet"
            base="/usr/local/sample/config"
            webAppMount="/WEB-INF/classes" />
    </Resources>
</Context>
・/user/local/sample/configにクラスパスを通す例です。
・src/main/webapp/META-INFフォルダに入れることで、war作成時、META-INFフォルダに組み込まれます。

build.gradleを編集

・war内部に設定ファイルが含まれないよう設定する
war {
    // warから除外する設定ファイルを指定
    rootSpec.exclude("**/*.properties")
    
    // 他にもあればさらにexclude
    rootSpec.exclude("**/*.yml")
}
・これで/user/local/sample/configは以下に設定ファイルを置いて、warをデプロイすればOKです
・簡単ですねー

コメントを残す

メールアドレスが公開されることはありません。