Maven使用多環境配置
在工作中,我們經常遇到多環境需要不同的配置檔案,例如不同環境下連線的資料庫不一致。
在spring boot
專案中可以較為方便的整合,那麼在傳統的spring web
專案中應該如何解決這個問題呢,下面我們嘗試使用maven的filter進行處理不同環境的變數值。
配置pom檔案
- 為pom檔案新增profile的配置
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault >
</activation>
<properties>
<env>local</env>
</properties>
</profile>
<profile>
<id>development</id>
<properties>
<env>development</env>
</properties>
</profile >
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<env>production</env>
</properties >
</profile>
</profiles>
在本段程式碼中,我們將local設定為預設的環境變數,那麼在我們打包的過程中如果不置頂環境變數,maven將按照預設的local形式進行打包。我們為每個profile設定了一個env
的變數值,該值可以讓我們在其他部分配置直接引用。
- 配置filter
<filters>
<filter>src/main/resource/${env}/application.properties</filter>
</filters>
通過filter,我們可以將不同環境目錄下的application.properties檔案中的引數值載入到maven中,如果我們有多個properties可以在新增一個filter即可。
- 配置resources
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>local/*</exclude>
<exclude>development/*</exclude>
<exclude>test/*</exclude>
<exclude>production/*</exclude>
</excludes>
</resource>
</resources>
通過指定filtering
表示該目錄下的檔案都將通過maven的過濾進行變數值的替換,並且我們將原始碼中的多環境目錄進行排除,在maven編譯生成的目錄將不會帶目錄檔案。
配置application.properties檔案
在src/main/resources/目錄下新建一個application.properties,並新增內容
test.properties[email protected].properties@
此處的@[email protected]為通過fileter篩選各自環境下的加入到maven的變數值。
例如src/main/resources/production/applicaiton.properties
檔案內容為:
test.properties=production
maven在編譯的過程中會替換 @[email protected]為production,最終生成的application.properties檔案內容應該為:
test.properties=production
通過上面的講解和程式碼配置,我們完成了maven多環境變數的配置工作,接下來我們來使用maven編譯試試?
- 通過命令進行打包
mvn clean compile -Pproduction
- 檢視目錄檔案生成情況
常見問題
maven在替換變數的時候,預設{} 也會被maven替換掉,為了避免該問題,我們可以參考spring boot
的parent中的xml進行配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
重點是delimiter的配置,該配置主要配置變數的分隔符,我們配置為@,那麼它就不會對${}產生作用了,具體說明可以參考maven的官方文件 maven delimiters
結語
通過上面的展示,想必我們都已經學會使用maven的多環境配置了,本段的demo我也傳到github上,大家可以自行檢視具體源代 —– github原始碼
相關推薦
springboot maven 多環境配置 jenking構建釋出配置
在後端開發中,應用程式在不同的環境可能會有不同的配置,例如資料庫連線、日誌級別等,開發,測試,生產每個環境可能配置都不一致。 使用Spring Boot的Profile可以實現多場景下的配置切換,方便開發中進行測試和部署生產環境。 下面就大致介紹一下yml配置檔案跟properties配置檔案怎
使用Maven多環境配置打包和部署
基本每個專案都會有開發環境(本地環境)、開發整合環境、測試環境、預釋出環境、正式環境。 最少也有開發環境(本地環境)、測試環境、生產環境3個環境,每個環境的配置是不一樣的,如果每次打包都手動修改配置檔案,工作量大且容易出錯。 所以這個時候就可以考慮使用mav
maven多環境配置及檔案命名
網上有很多相關的配置的部落格,都比較零散。找到了可以用的方案,測試有效,做記錄備份~ 專案中很多配置項,全部彙總到resources/properties目錄下,但是測試環境和生產環境的專案需要的配置檔案是不一樣的,每次打包部署不可能還修改配置檔案,因此想到偷懶。 包含兩個效
Spring-boot與maven多環境配置檔案設定
通常在開發時,不同的環境有不同的配置引數,通常會使用maven profile來選擇不同環境的配置檔案。下面介紹spring-boot專案如何與maven結合,來根據環境選擇不通的配置引數。 建立屬性配置檔案 首先為不同的環境配置不同的屬性配置檔案,命名
Maven 多環境配置檔案管理
通常,專案在生產環境跟開發環境中,配置引數多少會有一點差異,比如:日誌路徑、資料庫地址等等。所以每次打生產環境的包,需要修改一些配置檔案,如果手工修改配置檔案的話,就太浪費人力物力,而且還容易手滑改錯。 實際開發中需要根據不同環境將資源分別存放,構建部署包的時
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 多環境配置屬性檔案
在開發過程中,我們的軟體會面對不同的執行環境,比如開發環境、測試環境、生產環境,而我們的軟體在不同的環境中,有的配置可能會不一樣,比如資料庫配置檔案、屬性檔案等等。 使用maven來實現多環境的構建可移植性,需要藉助maven提供的profile功能,通過
maven多環境配置總結
開發十年,就只剩下這套架構體系了! >>>
使用maven profile實現多環境配置相關打包
本地 ces 軟件測試 測試 project oca rect fault uil 項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為: mvn package -P dev 在eclipse中可以右擊選項r
Maven 進行多環境配置,使用profile檔案進行配置
說明:Spring和Maven都可以進行profile配置多環境,這裡只介紹Maven進行管理。我的開發環境:eclipse+maven 檔案結構目錄: 步驟: 一、在pom.xml檔案中,新增如下: <profiles> <pr
Maven使用多環境配置
在工作中,我們經常遇到多環境需要不同的配置檔案,例如不同環境下連線的資料庫不一致。 在spring boot專案中可以較為方便的整合,那麼在傳統的spring web專案中應該如何解決這個問題呢,下面我們嘗試使用maven的filter進行處理不同環境的變數值
spring boot通過maven filter替換properties屬性(多環境配置)
這兩天專案到了差不多收尾了,想把各種環境配置通過maven filter在maven打包的時候就替換掉properties的配置。之前一直用${my.properies}的方式,打包了以後就是替換不掉properties裡的屬性。 這是我的maven filt
dubbo服務使用maven部署(支援profile多環境配置)
部署dubbo服務通常有三種方式:1、打war包,放在tomcat中執行,缺點:增加複雜性(埠、管理) 浪費資源(記憶體)官方:服務容器是一個standalone的啟動程式,因為後臺服務不需要Tomcat或JBoss等Web容器的功能,如果硬要用Web容器去載入服務提供方,增
maven profile實現多環境配置
每次專案部署上線都需要手動去修改配置檔案(比如資料庫配置)然後才能打包,很不方便,可以根據以下教程用maven的profile 實現多環境的配置。 以資料庫的配置為例,在src/main/resources 下新建三個資料夾,分別叫做dev,online,test,分別對應
Maven實現多環境配置切換
一. 問題由來 開發環境、測試環境、生產環境--------我們的軟體在不同的環境中,系統引數和配置可能會不一樣,比如資料來源配置、日誌檔案配置、以及一些軟體執行過程中的基本配置,那每次我們將軟體部署到不同的環境時,都需要
spring-boot實戰【05】:Spring Boo多環境配置及配置屬性註入到對象
num java red component 配置 cati 定義 fin row 項目工程結構: 配置文件application.properties文件 com.yucong.blog.name=yucong com.yucong.blog.title=Spring
Maven 多環境 打包
runt pom run div pan conf logs spa cnblogs 1.pom.xml文件添加profiles屬性 <profiles> <profile> <id>dev<