在企业级开发中,通常至少有三套环境,本地开发环境,测试环境,正式环境(有的还有预发环境),不一样环境的配置文件的内容不一样,像数据库链接,三方接口的测试路径与正式路径的区分等等,手动修改不只耗时,还容易出错。所以颇有必要进行环境隔离,下面咱们开始配置maven环境隔离。数据库
第一步:在pom文件的build 节点下新增resources节点,具体以下后端
1 <resources> 2 <resource> 3 <directory>src/main/resources.${deploy.type}</directory> 4 <excludes><!-- 先后端分离的项目 这里的排除项则无需配置 --> 5 <exclude>*.jsp</exclude> 6 </excludes> 7 </resource> 8 <resource> 9 <directory>src/main/resources</directory><!-- 这里表示公共配置的 路径--> 10 </resource> 11 </resources>
第二步:build同级下新增profiles节点,具体以下
1 <!--idea 里面刷新maven project 并勾选默认开发环境 --> 2 <profiles> 3 <profile> 4 <id>local</id> 5 <activation> 6 <activeByDefault>true</activeByDefault> <!--默认环境 --> 7 </activation> 8 <properties> 9 <deploy.type>local</deploy.type> 10 </properties> 11 </profile> 12 <profile> 13 <id>test</id> 14 <properties> 15 <deploy.type>test</deploy.type> 16 </properties> 17 </profile> 18 <profile> 19 <id>prod</id> 20 <properties> 21 <deploy.type>prod</deploy.type> 22 </properties> 23 </profile> 24 </profiles>
第三步:在项目路径下新建三个源文件夹及配置文件,同时公共配置保留在src/main/resources路径下,以下图的common.properties文件前后端分离
分别执行 mvn clean package -Dmaven.test.skip=true -Plocal, mvn clean package -Dmaven.test.skip=true -Ptest, mvn clean package -Dmaven.test.skip=true -Pprodjsp
若咱们mvn命令不接环境参数则默认使用local环境。从target文件夹下能够查看到不一样的编译后的配置环境,实现了maven的环境隔离,小伙伴们快去试一下吧。maven
有些有强迫症的小伙伴可能看着这个项目文件结构很是不舒服,由于它好像打乱了咱们正常maven项目的结构目录,下面咱们更换一点配置 更加优雅的实现maven的环境隔离。咱们之间在resources下创建config目录,再创建三个环境的目录,并加上相应的配置环境,同时修改配置pom文件,具体见下图ide
mvn命令同上,经验证 也实现了环境隔离,而且文件目录结构看起来也更加舒服了。测试