在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式。
各个环境之间的参数各不相同,比如mysql、redis等不同环境的ip,密码不一样,若每个环境都手动替换环境很容易出错,而且麻烦,这里可以利用maven的profile功能切换环境。
1.在项目下pom.xml的project节点下创建了开发环境和线上环境的profile
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<!--默认环境dev-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<!--测试环境-->
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<!-- 线上环境-->
<id>prd</id>
<properties>
<env>prd</env>
</properties>
</profile>
</profiles>
2. 在resources目录下建立不同环境的配置文件的文件夹
![](https://img.haomeiwen.com/i1769743/2fb71232b4465b94.png)
3.配置环境
<build>
<finalName>springmvc2</finalName>
<resources>
<resource>
<directory>src/main/resources/${env}</directory>
</resource>
</resources>
</build>
4.使用
![](https://img.haomeiwen.com/i1769743/f0513d3c607c8d0a.jpg)
最终pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<!--默认环境dev-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<!--测试环境-->
<properties>
<env>test</env>
</properties>
</profile>
<profile>
<!-- 线上环境-->
<id>prd</id>
<properties>
<env>prd</env>
</properties>
</profile>
</profiles>
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<name>xxx-xxx</name>
<groupId>xxx.xxx</groupId>
<artifactId>xxx-xxx</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
</properties>
<dependencies>
</dependencies>
<build>
<finalName>qc-web</finalName>
<!--环境变量-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>dev/*</exclude>
<exclude>prd/*</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${env}</directory>
</resource>
</resources>
</build>
</project>
maven命令指定环境:
配置完毕,使用 mvn package -P{profile} 命令打包war
example:
1、mvn package 没有指定profile,默认为dev
2、mvn package -Ptest -Dmaven.test.skip=true 指定profile为test并跳过测试
网友评论