Maven Profile 环境配置

在开发过程中,最少包括三个环境,分别是开发环境,测试环境以及生产环境,即对应三个配置文件(这里以*.yml为例,*.properties 同理),分别为:
application-dev.yml 开发
application-uat.yml 测试
application-prod.yml 生产

这里有一个小的地方需要注意一下:配置文件名中是中划线“-”,而不是下划线“_”,这里踩过坑,而且问题很难定位。

通过在Maven pom.xml 进行两步配置 可以灵活选择对应的环境。

  1. profile 配置
<profiles>

		<profile>
			<id>dev</id>
			 <activation>
                 <activeByDefault>true</activeByDefault>
             </activation>
			<properties>
				<build.profile.env>dev</build.profile.env>
			</properties>
		</profile>

		<profile>
			<id>uat</id>
			<properties>
				<build.profile.env>uat</build.profile.env>
			</properties>
		</profile>

		<profile>
			<id>prod</id>
			<properties>
				<build.profile.env>prod</build.profile.env>
			</properties>
		</profile>

	</profiles>

其中<activation> <activeByDefault>true</activeByDefault> </activation> 是控制默认的环境,本人一般注释,喜欢手动选择。
第一步配置完成后,在maven project 窗口中reimport 一下, 可以看到窗口中的profile的选项,如下图所示:
profile 选项
2.plugin 配置
profile配置完之后,一定不要忘了配置maven-antrun-plugin,此插件的作用是将application-* .yml配置文件中的配置信息中拷贝到application.yml中,因为运行时只认application.yml,而不认application- *.yml, 所以这里需要一步整合操作,将用户的配置拷贝到框架中规定的application.yml中。插件配置如下:

<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
								<move file="${project.build.directory}/classes/application-${build.profile.env}.yml"
									  tofile="${project.build.directory}/classes/application.yml"/>
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>

至此,整个配置就完成了。大家通过maven打包或者编译之后,可以去target/classes 下看一看有什么变化。如果在打包过程中选择的是uat, 会发现target/classes 文件下没有application-uat.yml文件,其他的dev,prod依然存在,取而代之的是application.yml文件,打开此文件发现与application-uat.yml内容一样,其实这一步就是上述步骤2的结果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浦江之猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值