环境隔离在实际工作中必然会遇到,属于一次投入长久收益的事情,所以本篇把maven
的环境隔离总结一下。
maven环境隔离解决的实际问题:
- 避免人工修改犯错(忘了修改线上、线下地址)
- 轻松分环境编译、打包、部署
通常实际的项目环境:
本地开发环境(Local)
开发环境(Dev)
测试环境(Beta)
线上环境(Prod)
实际操作:
- 拿出需要隔离的文件:
resource.jpg
如上图,我需要隔离datasource.properties
文件。首先在不带后缀的主resources
中将datasource.properties拿出,放到创建的3个有后缀resources文件中,记住他们的后缀分别是beta、dev、prod
,待会儿要用。 - 在
pom
文件中build节点下添加需要隔离的文件:
<build>
<resources>
<resource>
<directory>src/main/resources.${env}}</directory>
<excludes>
<exclude>*.jsp</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
在resources中用${环境名}代表要加的后缀。
- 在pom根节点下
profiles
中添加环境:
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>beta</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>beta</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
这个时候就会提醒你pom文件变动是否编译,确定后我们在idea右侧的Maven Projects中就可以看到环境已经生成了并且默认beta环境:
Maven Projects.jpg
这样一个简单的环境隔离就OK了。
补充:可以通过命令:mvn clean package -Dmaven.test.skip=true -Pbeta
来使用mvn命令编译项目,然后查看target
文件下的class
文件查看是否隔离成功 (-P后跟的是你想要编译的环境,这里填的是beta)
网友评论