Spring Bootアプリケーションで、検証環境と本番環境とでプロパティの値を変更するためのビルドスクリプトを書いてみました。
GradleのドキュメントとSpring Bootのリファレンスを参考にしています。
ここでは、例としてspring.profiles.activeの値を設定してみます。application.propertiesには次のように書きます。
spring.profiles.active=${ext.profiles}
次に、build.gradleにprocessResourcesを記述します。
processResources { filesMatching('**/application.properties') { expand(project.properties) } }
-Pprofiles=fooを指定してbuildを実行します。 build/resourcesにコピーされたapplication.propertiesは下のようになります。
spring.profiles.active=foo
置換してほしくないプロパティについては、$の前に(バックスラッシュ)を付加します。
spring.datasource.url=\${url}
build/resourcesにコピーされたプロパティファイルは下のようになります。
spring.datasource.url=${url}