1. 程式人生 > >Maven 多環境配置檔案管理

Maven 多環境配置檔案管理

通常,專案在生產環境跟開發環境中,配置引數多少會有一點差異,比如:日誌路徑、資料庫地址等等。所以每次打生產環境的包,需要修改一些配置檔案,如果手工修改配置檔案的話,就太浪費人力物力,而且還容易手滑改錯。

實際開發中需要根據不同環境將資源分別存放,構建部署包的時候,利用maven-resources-plugin外掛和profiles命令將差異化的資原始檔以及公共的資原始檔複製到resources目錄下即可。

先上程式碼,後面做詳細解釋

<profiles>
        <profile>
            <id>dev</id>
            <properties
>
<package.environment>dev</package.environment> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id
>
test</id> <properties> <package.environment>test</package.environment> </properties> </profile> <profile> <id>product</id> <properties> <package.environment
>
product</package.environment> </properties> </profile> </profiles> <build> <finalName>demo</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>dev/**</exclude> <exclude>product/**</exclude> <exclude>test/**</exclude> <exclude>common/**</exclude> </excludes> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> <warName>demo</warName> <webResources> <resource> <directory>src/main/resources/${package.environment}</directory> <targetPath>WEB-INF/classes</targetPath> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources/common</directory> <targetPath>WEB-INF/classes</targetPath> <filtering>true</filtering> </resource> </webResources> </configuration> </plugin> </plugins> </build>

1、配置profiles

詳細解釋大家可以自行google,簡單來說profile可以讓定義一系列的配置資訊,然後指定其啟用條件。

上述程式碼profiles節點中,定義了三種環境:dev、test、product。

2、新建四個資料夾用來存放不同環境的資源環境
這裡寫圖片描述
common:存放公共的資原始檔
dev:存放開發環境資原始檔
test:存放測試環境資原始檔
product:存放生產環境資原始檔

3、配置打包時候忽略新建的四個目錄

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>dev/**</exclude>
                    <exclude>product/**</exclude>
                    <exclude>test/**</exclude>
                    <exclude>common/**</exclude>
                </excludes>
            </resource>
        </resources>

exclude配置規則:
The mapping matches URLs using the following rules:
* matches zero or more characters (匹配0個或N個字元)
** matches zero or more directories in a path (匹配0個或N個目錄)
在此要忽略目錄下面的所有檔案,所以配置test/**

4、配置maven-resources-plugin外掛

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                    <warName>demo</warName>
                    <webResources>
                        <resource>
                             <!-- 指定resources外掛處理哪個目錄下的資原始檔 -->
                            <directory>src/main/resources/${package.environment}</directory>
                            <!--預設是${build.outputDirectory}指定的目錄 -->
                            <targetPath>WEB-INF/classes</targetPath>
                            <filtering>true</filtering>
                        </resource>
                        <resource>
                            <directory>src/main/resources/common</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>

啟用不同的profile,package.environment會有不同的值,會去相應的目錄copy資源。

配置完成。

執行maven命令,以生產環境為例:

這裡寫圖片描述

相關推薦

Maven 環境配置檔案管理

通常,專案在生產環境跟開發環境中,配置引數多少會有一點差異,比如:日誌路徑、資料庫地址等等。所以每次打生產環境的包,需要修改一些配置檔案,如果手工修改配置檔案的話,就太浪費人力物力,而且還容易手滑改錯。 實際開發中需要根據不同環境將資源分別存放,構建部署包的時

Spring-boot與maven環境配置檔案設定

通常在開發時,不同的環境有不同的配置引數,通常會使用maven profile來選擇不同環境的配置檔案。下面介紹spring-boot專案如何與maven結合,來根據環境選擇不通的配置引數。 建立屬性配置檔案 首先為不同的環境配置不同的屬性配置檔案,命名

maven環境配置檔案命名

網上有很多相關的配置的部落格,都比較零散。找到了可以用的方案,測試有效,做記錄備份~ 專案中很多配置項,全部彙總到resources/properties目錄下,但是測試環境和生產環境的專案需要的配置檔案是不一樣的,每次打包部署不可能還修改配置檔案,因此想到偷懶。 包含兩個效

maven 環境配置屬性檔案

在開發過程中,我們的軟體會面對不同的執行環境,比如開發環境、測試環境、生產環境,而我們的軟體在不同的環境中,有的配置可能會不一樣,比如資料庫配置檔案、屬性檔案等等。     使用maven來實現多環境的構建可移植性,需要藉助maven提供的profile功能,通過

spring boot環境配置檔案讀取不到的問題。

程式碼架構: 其中application.yaml中就三行程式碼: 作用是在IED啟動的時候指定當前環境。 但是其實我不是這麼做的,而是在idea中指定。 產生問題: 引入了一個自己寫的starter[jar包],jar包中配置了test環境的配置。但是專案啟動的時候指定了prof

spring 筆記3: Spring 環境配置檔案切換

使用Spring進行開發時,需要面對不同的執行環境,比如開發環境、測試環境、生產環境等。大多時候不同的環境需要不同的配置檔案。網上很多資料都是使用Spring的Bean definition profiles 功能來實現(https://docs.spring.io/spring/docs/4.2.

springboot maven 環境配置 jenking構建釋出配置

在後端開發中,應用程式在不同的環境可能會有不同的配置,例如資料庫連線、日誌級別等,開發,測試,生產每個環境可能配置都不一致。 使用Spring Boot的Profile可以實現多場景下的配置切換,方便開發中進行測試和部署生產環境。 下面就大致介紹一下yml配置檔案跟properties配置檔案怎

使用Maven環境配置打包和部署

基本每個專案都會有開發環境(本地環境)、開發整合環境、測試環境、預釋出環境、正式環境。 最少也有開發環境(本地環境)、測試環境、生產環境3個環境,每個環境的配置是不一樣的,如果每次打包都手動修改配置檔案,工作量大且容易出錯。 所以這個時候就可以考慮使用mav

application.properties環境配置檔案、jar包外部配置檔案配置項加密、程式中配置使用

一、簡介 spring boot專案application.properties檔案存放及使用介紹 二、方法一多環境配置檔案 我們一般都會有多個應用環境,開發環境、測試環境、生產環境,各個環境的配置會略有不同,我可以根據這個建立多份配置檔案,由主配置檔案來控制讀取那個子配置 建立spring boot專案

springboot環境配置檔案

springboot在多環境配置上有很好的支援,先說一下為什麼需要多環境。在軟體開發,測試上線的過程中,我們可能用到的配置引數是不同的,最明顯的是資料庫的連線地址。那麼在不同的環境中我們如何通過讀取不同的配置檔案呢?springboot提供了一套約定優於配置的方案。1、在ap

maven環境配置打包(自定義properties)

專案開發經常碰到配置檔案中測試的jdbc.url和線上的是不一樣的。為此每次打包都要修改配置檔案,很煩,而且也容易出錯。 最近才發現,原來用maven的profile可以實現多種環境的配置。 1、在src/main/resources/filters,建兩個檔案:test.

SpringBoot初識(四)——Maven環境配置

Maven多環境有什麼好處     在日常專案開發中,我們經常需要在開發環境、測試環境、生產環境等情況下進行專案的部署,對於配置檔案來說,如果無法識別各個環境,就意味著當我們在進行開發時,需要將配置檔案的內容更改為測試環境,而在進行生產部署時,又需要將其內容改

maven 環境配置

pom.xml 檔案 節點下新增檔案 <profiles> <profile> <id>dev</id> <!-- dev 隨便起名字 和dev.prope

maven環境配置總結

開發十年,就只剩下這套架構體系了! >>>   

SpringProfile輕鬆切換環境配置檔案

在專案開發的過程中,我們難免會遇到開發、測試、生產等環境的切換,而各個環境的配置肯定是不同的。傳統的辦法是在專案打包的時候修改配置檔案。但人為做的事情難免產生意外。Spring 為我們提供了一種多環境配置檔案同時存在,而執行/打包時僅執行所選的配置檔案的方式。具體的介紹如下: Spring提供了兩種屬性: s

Maven 進行環境配置,使用profile檔案進行配置

說明:Spring和Maven都可以進行profile配置多環境,這裡只介紹Maven進行管理。我的開發環境:eclipse+maven 檔案結構目錄:     步驟: 一、在pom.xml檔案中,新增如下: <profiles> <pr

使用maven profile實現環境配置相關打包

本地 ces 軟件測試 測試 project oca rect fault uil 項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為: mvn package -P dev 在eclipse中可以右擊選項r

SpringBoot系統列 2 - 配置檔案環境配置(dev,qa,online) SpringBoot系統列 1 - HelloWorld!

 實現專案的多環境配置的方法有很多,比如通過在Pom.xml中配置profiles(最常見) 然後在Install專案打War包的時候,根據需求打不同環境的包,如圖: 這種配置多環境的方法在SSM框架中使用的最多,但在SpringBoot中使用最多的是在啟動SpringBoot專案的時候指定執

Spring Boot 配置檔案詳解:自定義屬性、隨機數、環境配置

相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml中引入模組化的Starter POMs,其中各個模組都有自己的預