- 組態內容預期在任何環境都適用
- 組態內容必須為各環境調整
- 開發人員為各環境提供不同的 jar / war 包含各自的組態內容
- 部署人員為單一的 jar / war 修改組態以適應其環境
- cas.server.name=https://acme.com
- cas.server.name=https://@hostName@
- <?xml version="1.0" encoding="UTF-8"?>
- <project default="replaceToken">
- <property environment="env" />
- <target name="replaceToken">
- <replace file="cas/src/main/resources/application.properties" token="@hostName%" value="@{env.hostName}" />
- </target>
- </project>
- Build
- Inject environment variables
- Properties Content
- hostName=acme.com
- Invoke ant
- Invoke Gradle script
再來是情境 2-2「一個 jar / war 到處使用」,藉由很基本的 JDK 工具即可:
- mkdir working
- cd working
- mv ~/Downloads/cas-1.0.0-SNAPSHOT.war .
- jar xf cas-1.0.0-SNAPSHOT.war WEB-INF/classes/application.properties
- vi WEB-INF/classes/application.properties(改成適合環境的內容)
- jar uf cas-1.0.0-SNAPSHOT.war WEB-INF/classes/*
- mv cas-1.0.0-SNAPSHOT.war ~/Downloads
- cd ..
- rm -rf working
- unzip cas-1.0.0-SNAPSHOT.war WEB-INF/classes/application.properties
- zip -u cas-1.0.0-SNAPSHOT.war WEB-INF/classes/*
沒有留言:
張貼留言