实际的项目环境:
- 本地开发环境(Local)
- 开发环境(Dev)
- 测试环境(Beta)
- 线上环境(Prod)
环境隔离的目的:
- 生产环境与其他环境的 DB、MQ、Redis、FTP 等配置区分开,也是为了区分生产数据和其他数据。
- 权限控制,不是所有人都可以连接到生产环境,不同的人干不同事。
Maven 环境隔离配置
1. 在 pom.xml 中 build 节点下增加
<resources>
<resource>
<directory>src/main/resources.${deploy.type}</directory>
<excludes>
<exclude>*.jsp</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
2. 在 pom.xml 中 project 节点下增加
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<deploy.type>dev</deploy.type>
</properties>
</profile>
<profile>
<id>beta</id>
<properties>
<deploy.type>beta</deploy.type>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<deploy.type>prod</deploy.type>
</properties>
</profile>
</profiles>
activeByDefault
的意思是项目在编译的时候如果没有指定环境,默认使用此环境。
3. 新建对应的文件夹,把需要隔离的文件分开,公共的留下
- resources 下的 mapper 等不需要隔离的文件留在公共的 resources 目录下
-
新建 resources.dev,resources.prod,然后创建各自的配置文件
如下图所示:
4. 使用隔离的环境
-
开发的时候
在 IDEA 右边的 Maven 中的 profiles 勾选需要的环境。如图所示:
- 打包项目的时候
参数:-P{环境标识}
例如:
mvn clean package -Dmaven.test.skip=true -Pdev
mvn clean package -Dmaven.test.skip=true -Pprod