maven 本地環(huán)境、開(kāi)發(fā)環(huán)境 、測(cè)試環(huán)境、生產(chǎn)環(huán)境打包

在平常開(kāi)發(fā)的過(guò)程中,我們的項(xiàng)目配置文件經(jīng)常有有幾套分別對(duì)應(yīng)自己本地的環(huán)境、開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、以及生產(chǎn)環(huán)境。因?yàn)樵诓煌沫h(huán)境中項(xiàng)目的相關(guān)配置也會(huì)有相關(guān)的不同,我們?cè)诓煌沫h(huán)境中部署就要手動(dòng)修改為對(duì)應(yīng)環(huán)境的配置,這樣太麻煩了以及這樣也會(huì)很容易出錯(cuò)。
目前JAVA相關(guān)的項(xiàng)目基本都是使用Maven來(lái)進(jìn)行構(gòu)建。在maven中實(shí)現(xiàn)多環(huán)境的構(gòu)建可移植性需要使用profile,通過(guò)不同的環(huán)境激活不同的profile來(lái)達(dá)到構(gòu)建的可移植性。
接下來(lái)我們就通過(guò)maven的相關(guān)配置來(lái)在打包時(shí)指定各個(gè)環(huán)境對(duì)應(yīng)配置文件。

第一步 pom文件中的profile

首先時(shí)pom文件中profile配置

<!-- 定義打包環(huán)境變量,本地環(huán)境,生產(chǎn)環(huán)境;測(cè)試環(huán)境;開(kāi)發(fā)環(huán)境 -->
    <profiles>
        <profile>
            <!-- 本地開(kāi)發(fā)環(huán)境 -->
            <id>localhost</id>
            <properties>
                <profiles.active>localhost</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 開(kāi)發(fā)環(huán)境 -->
            <id>development</id>
            <properties>
                <profiles.active>development</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 測(cè)試環(huán)境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 生產(chǎn)環(huán)境 -->
            <id>production</id>
            <properties>
                <profiles.active>production</profiles.active>
            </properties>
        </profile>
    </profiles>

在pom文件中添加以上的配置信息,來(lái)區(qū)分本地環(huán)境,目錄、開(kāi)發(fā)環(huán)境目錄、測(cè)試環(huán)境目錄以及生產(chǎn)環(huán)境目錄。
其中l(wèi)ocalhost的節(jié)點(diǎn),我們?cè)O(shè)置了

<activation>
                <activeByDefault>true</activeByDefault>
            </activation>

這里是設(shè)置本地的環(huán)境是默認(rèn)激活的,如果我們?cè)诖虬鼤r(shí)不指定相關(guān)的文件,項(xiàng)目就默認(rèn)指定本地的配置文件了。其中profiles.active表示被激活的profile的配置文件的目錄。

第二步 工程目錄建立對(duì)應(yīng)目錄

因?yàn)閙aven的配置文件一般都是在src/main/resource目錄下,所以我們?cè)趓esource目錄下面分別新建localhost、development、test、production這四個(gè)文件目錄;如下圖:


1534410357929.png

pom文件中設(shè)置build配置

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 資源根目錄排除各環(huán)境的配置,防止在生成目錄中多余其它目錄 -->
                <excludes>
                    <exclude>test/*</exclude>
                    <exclude>localhost/*</exclude>
                    <exclude>production/*</exclude>
                    <exclude>development/*</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/${profiles.active}</directory>
            </resource>
        </resources>
    </build>

各個(gè)環(huán)境的配置我們?cè)诘诙€(gè)節(jié)點(diǎn)中通過(guò)前面在profile中配置的profiles.active屬性來(lái)指定。即src/main/resources/${profiles.active}。這樣在激活指定的profile時(shí),會(huì)加載指定目錄下的配置文件,如當(dāng)前激活的是pro profile,那么這個(gè)資源目錄就是src/main/resources/pro。這樣就達(dá)到了不同環(huán)境加載不同配置的目的。

項(xiàng)目編譯

通過(guò)在運(yùn)行maven命令時(shí)指定不同的profile即可構(gòu)建不同環(huán)境需要的war包或發(fā)布到不同的環(huán)境了 。如:

mvn clean package -Pproduction

這樣我們就是打包生產(chǎn)環(huán)境的配置了。

如果我們是idea開(kāi)發(fā)的話,我們可以不用些命令的方式
我們打開(kāi)idea的maven窗口。


1534410622835.png

我們這里可以勾選不同的配置環(huán)境來(lái)打包對(duì)應(yīng)的環(huán)境配置文件。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容