实际的项目环境
1、本地开发环境(local)
2、开发环境(dev)
3、测试环境(beta)
4、线上环境(prod)
隔离环境之间各种配置存在的差异
1、FTP服务器相关的配置不一样
2、数据库配置
3、支付宝支付的配置
4、等等
Maven环境隔离解决的实际问题
1、避免人工修改的弊端,即容易犯错误
2、轻松分环境编译、打包、部署
3、等等
Maven环境隔离配置
第一步:在里面加入
<resources>
<resource>
<directory>src/main/resources.${deploy.type}</directory>
<excludes>
<exclude>*.jsp</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
第二步:与同级加入
<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>
第三步:刷新一下,这个时候我们看到profiles 有刚刚配置的三个环境了
第四步:
新建对应的文件夹,并把隔离的文件分开,公共的留下。
打包命令:
mvn clean package -Dmaven.test.skip=true -P${参数}
如:
mvn clean package -Dmaven.test.skip=true -Pdev
mvn clean package -Dmaven.test.skip=true -Pbeta
mvn clean package -Dmaven.test.skip=true -Pprod
测试1
我隔离的shop.properties中里面有个注解是识别,下图
现在我打包编译的是prod
执行命令:
mvn clean package -Dmaven.test.skip=true -Pprod
执行结果注意看图:
我们看到执行完命令后target/shop.properties文件里面的注解,是我prod环境下的shop.properties。
我们使用tomcat启动时想指定环境启动,只需要在idea maven project中进行勾选即可(建议你使用什么环境就勾选什么环境,不要多勾选,以免出现其它不必要的错误),如下图:
测试2
我选中dev,把tomcat跑起来,看到target/shop.properties文件里面的注解,是我设置dev环境下的shop.properties。