maven多環境配置總結
阿新 • • 發佈:2019-03-25
阿里中央倉庫
由於預設的中央倉庫,伺服器在國外,下載速度很慢,但我們可以使用阿里的中央倉庫,親測速度超快。我們只需在maven根目錄下的conf資料夾中的setting.xml檔案的mirrors節點,新增內容如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
maven多環境
maven藉助profile實現多環境,通過不同的環境啟用不同的profile來達到構建的可移植性。筆者有兩個環境dev、test,專案目錄結構:
如上圖,在專案根路徑新建目錄filters/dev、filters/test,並在dev、test分別新建檔案config.properties檔案;
1、配置config.properties檔案
dev下的config.properties:
env=dev
test下的config.properties:
env=test
在src/resources/config新建檔案config.properties,內容為:
env=${env}
${}中的名稱必須是env不能是env1或者其它。
2、配置resources
<resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource>
通過指定filtering表示includes節點配置的檔案都將通過maven的過濾進行變數值的替換。
3、配置filter
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <filters> <filter>${basedir}/filters/dev/config.properties</filter> </filters> </build> </profile> <profile> <id>test</id> <build> <filters> <filter>${basedir}/filters/dev/config.properties</filter> </filters> </build> </profile> </profiles>
通過filter,我們可以將不同環境目錄下的config.properties檔案中的引數值載入到maven中,如果filters中可以新增有多個filter,即可以新增多個properties檔案。
4、通過命令進行打包
mvn clean compile -Pdev
通過-P指定打包環境,如果不指定則打包的環境預設是dev
5、擴充套件
除了filters定義多環境,我們還可以通過節點properties定義不同環境的變數,我們使用如下方法可以定義env:
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <env>test</env> </properties> </profile> </profiles>
但filters與properties也可以一起使用,定義不同的變數。