maven利用Profile構建不一樣環境的部署包

在開發的過程當中,常常須要面對不一樣的運行環境(開發環境、測試環境、準發佈環境、生產環境等等),在不一樣的環境中,相關的配置通常是不同的,好比數據源配置、用戶名密碼配置、以及一些軟件運行過程當中的基本配置。html

使用Maven來進行構建能夠達到不一樣環境構建不一樣的部署包。在maven中實現多環境的構建可移植性須要使用profile,經過不一樣的環境激活不一樣的profile來達到構建的可移植性。apache

一、工程pom.xml的配置

/**
    這裏定義了三個環境,local(本地環境)、dev(開發環境)、pro(生產環境),
    其中開發環境是默認激活的(activeByDefault爲true),這樣若是在不指定profile時默認是開發環境
*/
<profiles>
  <profile>
    <id>local</id>
    <properties>
    //這裏的env只是一個變量而已,名字能夠由你任意來定,這個變量在後面有用到
      <env>local</env>
    </properties>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
  <profile>
    <id>dev</id>
    <properties>
      <env>dev</env>
    </properties>
  </profile>
  <profile>
    <id>pro</id>
    <properties>
      <env>pro</env>
    </properties>
  </profile>
</profiles>

<build>
<finalName>mqConsumer</finalName>
<filters>
    //${env}這個變量就是在前面定義過的
  <filter>src/main/resources/filters/${env}.properties</filter>
</filters>
<resources>
  <resource>
//對resources資源文件下的包含${}佔位符的變量進行替換
	<directory>src/main/resources</directory>
	<filtering>true</filtering>
  </resource>
</resources>
</build>

二、各個環境的配置文件

local.propertiesmaven

#activeMQ配置
brokerURL=tcp://192.168.1.55:61616

dev.propertiestcp

#activeMQ配置
brokerURL=tcp://115.29.173.120:61616

pro.propertieside

#activeMQ配置
brokerURL=failover://(tcp://115.29.173.121:61616,tcp://115.29.173.121:61617,
tcp://115.29.189.46:61616,tcp://115.29.189.46:61617)```

#### 三、待替換的配置文件(通常位於資源路徑下)
config.propeties

#activeMQ brokerURL配置 brokerURL=${brokerURL}測試

#### 四、執行maven命令進行打包

//本地環境默認爲激活模式,因此可不加-P參數 mvn clean package //dev環境 mvn clean package -Pdev //pro環境 mvn clean package -Pproui

//執行命令後,能夠看到最後的部署包裏面的配置文件配置就是對應環境須要的code

ref:

[http://maven.apache.org/guides/introduction/introduction-to-profiles.html](http://maven.apache.org/guides/introduction/introduction-to-profiles.html)
相關文章
相關標籤/搜索