簡體   English   中英

我想為所有環境 DEV/UAT/PROD 單獨部署 WAR 文件,但我對屬性文件的依賴讓我知道我該怎么做?

[英]I want to single deploy WAR file for all environment DEV/UAT/PROD but i ahve dependency of properties file let me know how i will do?

目前在我的 comp 中,他們通過創建不同的 WAR 文件在不同的 2 環境中部署 WAR 文件。 Exp:對於 DEV,他們將創建和部署,對於 UAT,由於屬性文件的某些依賴性,他們將創建和部署。

所以我想要解決方案,我將如何在服務器端或 WAR 文件中配置以部署僅由開發人員創建的單個 WAR 文件,這也是最佳實踐。

我聽別人說我們可以通過在服務器端配置與環境相關的環境屬性來實現。

請給出應該可以正常工作的完美解決方案......

希望 +ve 回答。 謝謝 !

您可以根據DEV,UAT等環境保留不同的屬性文件。 現在,在不同的環境中,您可以將環境變量env保留為DEV和UAT。

在Tomcat中,可以通過在vm選項-Denv = DEV或-Denv = UAT中提供它來簡單地進行設置。

現在,您可以創建相同的war文件,其中將包含所有環境的所有配置文件,並且根據您的環境變量,它將拾取和配置文件。

希望能回答您的查詢。

示例:以下是war插件

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <warName>${app.jvm}</warName>
        <webResources>
            <resource>
                <directory>${basedir}/src/main/resources/config</directory>
                <targetPath>WEB-INF</targetPath>
                <filtering>true</filtering>
            </resource>
        </webResources>
    </configuration>
</plugin>

在這里,我們復制* -dev.properties * -uat.properties

現在,例如,如果您在本地使用tomcat服務器

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8086</port>
        <ignorePackaging>true</ignorePackaging>
        <systemProperties>
            <env>dev</env>
        </systemProperties>
    </configuration>
</plugin>

這樣,您可以在tomcat中設置環境變量。 在基於System.getProperty(“ env”)的應用程序啟動時,您可以選擇配置文件。

您可以在項目中創建 2 個屬性文件

  1. Application.local.properties
  2. 應用程序.dev.properties

當您執行構建時,請設置您的 vm 參數

當你想使用本地然后設置為 -Denv=local

對於開發:-Denv=dev

這將閱讀相關的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM