1. 程式人生 > >Maven為本地、測試、生產等不同的環境打包

Maven為本地、測試、生產等不同的環境打包

大家在專案開發中經常碰到這樣的情況,每個專案都會有多套執行環境,比如開發環境、測試環境、生產環境等,不同的環境對應的配置也不盡相同,比如說資料庫連線、檔案路徑、WebServices address等。    
不同環境下需要構建不同的包,那麼我們可以通過以下兩種方式來解決:

一、定義多個pom,使用-f <pom_file>指定

比如定義如下pom:

pom_dev.xml (default) 
pom_qa.xml 
pom_prod.xml
我們打包的時候,選擇不同的pom來打不同的包

Build war for qa:

mvn clean install -f pom_qa.xml
Build war for product:
mvn clean install -f pom_prod.xml
但是多個pom.xml之間重複配置很多,不容易維護,極不推薦這種方式。

二、pom定義多個profile進行配置

目前我們專案在配置資料夾中建立了三個不同環境的配置資料夾,目錄結構如下:
project/
|-- src
    |-- main
    |   |-- java
    |   |-- env
    |   |   |-- dev
    |   |   |   |-- application.properties
    |   |   |   |-- database.properties
    |   |   |   |-- sap-config.propertes
    |   |   |-- qa
    |   |   |   |-- application.properties
    |   |   |   |-- database.properties
    |   |   |   |-- sap-config.propertes
    |   |   |-- prod
    |   |   |   |-- application.properties
    |   |   |   |-- database.properties
    |   |   |   |-- sap-config.propertes
    |   |-- resources
    |   |-- webapp
    |-- test
pom.xml裡定義三個環境的profile,其中預設環境為dev:
<profiles>
	<!-- 開發環境 propertites 讀取pom中的變數 -->
	<profile>
		<id>dev</id>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<properties>
			<package.env>dev</package.env>
		</properties>
	</profile>
	<profile>
		<id>qa</id>
		<properties>
			<package.env>qa</package.env>
		</properties>
	</profile>
	<profile>
		<id>prod</id>
		<properties>
			<package.env>prod</package.env>
		</properties>
	</profile>
</profiles>
build定義如下:
<build>
	<finalName>pos</finalName>
	<resources>
		<resource>
			<directory>src/main/env/${package.env}</directory>
			<targetPath>properties</targetPath>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
			<excludes>
				<exclude>properties/dev/*.*</exclude>
				<exclude>properties/qa/*.*</exclude>
				<exclude>properties/prod/*.*</exclude>
			</excludes>
		</resource>
	</resources>
	<plugins>
		<!-- 更改maven預設的打包目錄 -->
		<plugin>
			<artifactId>maven-war-plugin</artifactId>
			<configuration>
				<warSourceDirectory>webapp</warSourceDirectory>
				<webXml>webapp\WEB-INF\web.xml</webXml>
			</configuration>
		</plugin>
	</plugins>
</build>
其中${package.env}就是profile裡定義的properties,打包的時候使用-P <profile>指定需要打哪個環境的包。
打包的時候使用-P <profile>指定需要打哪個環境的包。 
比如打開發包 打包成功後,如下圖

相關推薦

vue打包後如何區分開發測試生產不同的開發環境

看過vue和webpack api的同學都知道,使用npm run dev可以執行開發環境的程式碼,使用npm run build就是打包生產環境的程式碼。但是如果我還有測試環境和預釋出環境,執行npm run build命令只能在生成環境也就是線上環境執行,那我的測試和預釋

Maven本地測試生產不同環境打包

大家在專案開發中經常碰到這樣的情況,每個專案都會有多套執行環境,比如開發環境、測試環境、生產環境等,不同的環境對應的配置也不盡相同,比如說資料庫連線、檔案路徑、WebServices address等

Maven 如何不同環境打包 —— 開發測試生產環境

在開發過程中,我們的軟體會面對不同的執行環境,比如開發環境、測試環境、生產環境,而我們的軟體在不同的環境中,有的配置可能會不一樣,比如資料來源配置、日誌檔案配置、以及一些軟體執行過程中的基本配置,那每次我們將軟體部署到不同的環境時,都需要修改相應的配置檔案,這樣來回修改

Spring Boot 多環境配置 --不通的環境應用不通的配置,生成測試開發

方法一: Properties多環境配置 resouce 下面新建如properties-dev.properties等配置檔案(檔名字必須按照這種格式),不通的環境對應著一個配置檔案,想用那個就在application.properties裡使用例如   spri

maven學習篇三-------------編譯清理測試打包專案

一、建立Maven專案 1.1、建立Hello專案   1、首先建立Hello專案,同時建立Maven約定的目錄結構和pom.xml檔案     Hello      | --src      | -----main      | ----------java      | -

未來和安卓系統說再見,華新手機系統測試體驗中!

大家都知道,華為已經有自己的海思麒麟晶片了,並且經過這麼多年的研發麒麟的引數已經成為一線處理器。對於華為來說,成為全球智慧手機廠商前三多多少少也有處理器的原因。那麼,大家是否有想過如果華為成為自己研發處理器的公司,自已研發系統的公司,是不是能夠成為硬體軟體一體的生態王者? 好訊息是,華為已經開始測試新的

Spring.profile實現開發測試生產環境的配置和切換

軟體開發過程一般涉及“開發 -> 測試 -> 部署上線”多個階段,每個階段的環境的配置引數會有不同,如資料來源,檔案路徑等。為避免每次切換環境時都要進行引數配置等繁瑣的操作,可以通過spring的profile功能來進行配置引數的切換。 以我用到的專案的實際情況

【倚天屠龍記】明志是IBM全球敏捷官方發言人,有10年一線敏捷研發、測試、技術支援管理諮詢經驗,多家世界500強企業做敏捷諮詢和轉型服務。期望通過自己在IBM親身經歷經驗感悟的分享幫助您實踐真正敏捷。

倚天屠龍記 明志是IBM全球敏捷官方發言人,有10年一線敏捷研發、測試、技術支援、管理、諮詢經驗,為多家世界500強企業做敏捷諮詢和轉型服務。期望通過自己在IBM親身經歷、經驗、感悟的分享幫助您實踐真正敏捷。...

專案釋出環境:開發測試迴歸生產

開發環境:所有的開發和配置在這個環境裡進行。一般情況下,只有這個環境可以改配置和進行開發,並且一般不在這個環境下建立資料。(開發環境就是每個開發人員電腦上的開發環境,只有開發人員可以配置和開發,寫資料測試放在測試環境) 配置可以比較隨意, 為了開發除錯方便,一般

Spring之——Spring.profile實現開發測試生產環境的配置和切換

軟體開發過程一般涉及“開發 -> 測試 -> 部署上線”多個階段,每個階段的環境的配置引數會有不同,如資料來源,檔案路徑等。為避免每次切換環境時都要進行引數配置等繁瑣的操作,可以通過spring的profile功能來進行配置引數的切換。 以我用到的專案的實際

maven入門淺析(一)-----maven安裝配置建立專案骨架編譯測試打包執行

一、下載及安裝 1.1 下載maven 3.2.5 先到官網http://maven.apache.org/download.cgi 下載3.2.5版本(目前最新是3.3.9),下載完成後,解壓到某個目錄(本文中是E:\apachemaven) 2.1 配置環境變數 系統

iOS 開發測試生產的描述檔案(配置檔案)

對於iOS開發,證書以及描述檔案是必不可少的元素。 iOS證書是用來證明iOS App內容的合法性和完整性的數字證書。對於想安裝到真機或釋出到AppStore的應用程式(App),只有經過簽名驗證才能

docker在使用JAVA生產測試開發環境的部署流程

一、使用 Docker 搭建 Tomcat 執行環境 1 Docker與虛擬機器   2 搭建過程 2.1 準備宿主系統 準備一個 CentOS 7作業系統,具體要求如下: 必須是 64 位作業系統 建議核心在 3.8 以上 通過以下命令檢視您的 CentOS

【Spring】使用@Profile註解實現開發測試生產環境的配置和切換,看完這篇我徹底會了!!

## 寫在前面 > 在實際的企業開發環境中,往往都會將環境分為:開發環境、測試環境和生產環境,而每個環境基本上都是互相隔離的,也就是說,開發環境、測試環境和生產環境是互不相通的。在以前的開發過程中,如果開發人員完成相應的功能模組並通過單元測試後,會通過手動修改配置檔案的形式,將專案的配置修改成測試環境

三張圖看遍Linux 性能監控測試優化工具

Linux 測試 優化工具 Linux 平臺上的性能工具有很多,眼花繚亂,長期的摸索和經驗發現最好用的還是那些久經考驗的、簡單的小工具。系統性能專家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大會上更新了他那個有名的關於 Linux 性能方面的 talk (ht

以太坊智能合約入門(編寫編譯創建部署交互測試交易)

智能合約 合約 以太坊 以太坊開發 ethereum truffle solidity 區塊鏈 區塊鏈開發 blockchain 什麽是以太坊智能合約? 以太坊智能合約是存放在以太坊區塊鏈具有特定地址的代碼(它的功能)和數據(它的狀態)集合。智能合約賬

微信小程序環境搭建(本地測試生產)

info 相關配置 打開 rod 平臺 cap 開發者工具 其他 項目 1.本地 官網文檔:https://cloud.tencent.com/document/product/619/11442#.E6.9C.AC.E5.9C.B0.E5.A6.82.E4.BD.95.

spring-boot 多環境化配置 (如:開發,測試生產

             sring cloud中可以搭建配置中心,可以從本地電腦或者git上讀取配置,而且還可以選擇配置的版本(開發,測試,生產)         spring boo

【mpich2】圖文教程:mpich2的安裝配置測試vs配置命令列測試(沒有使用)

轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/83549093 【安裝mpich2】 1、開啟“mpich2-1.4.1p1-win-ia32.msi。 2、點選“Next”。 3、點選“N

Spring Boot 初級入門教程(十二) —— 執行測試打包過程中碰到的各種錯誤

錯誤一:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project test-springboot: Compilation fail