maven profile指定配置文件打包 多环境

在开发过程, 我们习惯把一些配置信息写到一个单独的的文件中. 如xxx.properties等格式的文件.
以下是如何不频繁修改配置文件, 随时打包不同基础数据配置信息(打包的其中一种,我感觉是比较方便的)
1.在pom.xml中添加 profiles节点信息如下:

<profiles>
		<profile>
			<!-- 开发环境 -->
			<id>local</id>
			<properties>
				<analyzeImageTimer>timer/analyzeImage</analyzeImageTimer>
				<ammeterCommandTimer>timer/ammeterCommandTimer</ammeterCommandTimer>
				<ammeterImgDownloadTimer>timer/ammeterImgDownloadTimer</ammeterImgDownloadTimer>
				<alarmReq01ConsumerTimer>timerContoller/alarmReq01Consumer</alarmReq01ConsumerTimer>
				<ammterCommandConsumer>timerContoller/ammterCommandConsumer</ammterCommandConsumer>
				<brightneesResp01Consumer>timerContoller/brightneesResp01Consumer</brightneesResp01Consumer>
				<delayResp01ConsumerTimer>timerContoller/delayResp01Consumer</delayResp01ConsumerTimer>
				<ipResp01ConsumerTimer>timerContoller/ipResp01Consumer</ipResp01ConsumerTimer>
				<snapReportConsumerTimer>timerContoller/snapReportConsumer</snapReportConsumerTimer>
				<snapResp01ConsumerTimer>timerContoller/snapResp01Consumer</snapResp01ConsumerTimer>
				<timeResp01ConsumerTimer>kafkaClient/timerContoller/timeResp01Consumer</timeResp01ConsumerTimer>
				<versionResp01ConsumerTimer>timerContoller/versionResp01Consumer</versionResp01ConsumerTimer>
				<deleteAmmeterImgTimer>timer/deleteAmmeterImgTimer</deleteAmmeterImgTimer>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault><!-- 打包默认打该配置-->
			</activation>
		</profile>
		<profile>
			<!-- 测试环境 -->
			<id>test</id>
			<properties>
				<analyzeImageTimer>ammeter/timer/analyzeImage</analyzeImageTimer>
				<ammeterCommandTimer>ammeter/timer/ammeterCommandTimer</ammeterCommandTimer>
				<ammeterImgDownloadTimer>ammeter/timer/ammeterImgDownloadTimer</ammeterImgDownloadTimer>
				<alarmReq01ConsumerTimer>alarmReq01Consumer</alarmReq01ConsumerTimer>
				<ammterCommandConsumer>ammterCommandConsumer</ammterCommandConsumer>
				<brightneesResp01Consumer>brightneesResp01Consumer</brightneesResp01Consumer>
				<delayResp01ConsumerTimer>delayResp01Consumer</delayResp01ConsumerTimer>
				<ipResp01ConsumerTimer>ipResp01Consumer</ipResp01ConsumerTimer>
				<snapReportConsumerTimer>snapReportConsumer</snapReportConsumerTimer>
				<snapResp01ConsumerTimer>snapResp01Consumer</snapResp01ConsumerTimer>
				<timeResp01ConsumerTimer>timeResp01Consumer</timeResp01ConsumerTimer>
				<versionResp01ConsumerTimer>timerContoller/versionResp01Consumer</versionResp01ConsumerTimer>
				<deleteAmmeterImgTimer>deleteAmmeterImgTimer</deleteAmmeterImgTimer>
			</properties>
		</profile>
		<profile>
			<!-- 生产环境 -->
			<id>pro</id>
			<properties>
				<analyzeImageTimer>timer/analyzeImage</analyzeImageTimer>
				<ammeterCommandTimer>timer/ammeterCommandTimer</ammeterCommandTimer>
				<ammeterImgDownloadTimer>timer/ammeterImgDownloadTimer</ammeterImgDownloadTimer>
				<alarmReq01ConsumerTimer>timerContoller/alarmReq01Consumer</alarmReq01ConsumerTimer>
				<ammterCommandConsumer>timerContoller/ammterCommandConsumer</ammterCommandConsumer>
				<brightneesResp01Consumer>timerContoller/brightneesResp01Consumer</brightneesResp01Consumer>
				<delayResp01ConsumerTimer>kafkaClient/timerContoller/delayResp01Consumer</delayResp01ConsumerTimer>
				<ipResp01ConsumerTimer>kafkaClient/timerContoller/ipResp01Consumer</ipResp01ConsumerTimer>
				<snapReportConsumerTimer>kafkaClient/timerContoller/snapReportConsumer</snapReportConsumerTimer>
				<snapResp01ConsumerTimer>kafkaClient/timerContoller/snapResp01Consumer</snapResp01ConsumerTimer>
				<timeResp01ConsumerTimer>kafkaClient/timerContoller/timeResp01Consumer</timeResp01ConsumerTimer>
				<versionResp01ConsumerTimer>kafkaClient/timerContoller/versionResp01Consumer</versionResp01ConsumerTimer>
				<deleteAmmeterImgTimer>timer/deleteAmmeterImgTimer</deleteAmmeterImgTimer>
			</properties>
		</profile>
	</profiles>

2.在build标签中添加resources

<build>
		 <resources>
			<resource>
			<!-- 读取  src/main/resources 路径下的信息-->
				<directory>src/main/resources</directory>
				<!-- 将src/main/resources${}替换为pom标签中的信息 -->
				<filtering>true</filtering>
			</resource>
		</resources>
	</build>

3.在xxx.properties文件中引用pom配置的信息

ammeter.AnalyzeImageTimer=${analyzeImageTimer}
ammeter.ammeterCommandTimer=${ammeterCommandTimer}
ammeter.AmmeterImgDownloadTimer=${ammeterImgDownloadTimer}
kafkaClient.alarmReq01ConsumerTimer=${alarmReq01ConsumerTimer}
kafkaClient.ammterCommandConsumer=${ammterCommandConsumer}
kafkaClient.brightneesResp01Consumer=${brightneesResp01Consumer}
kafkaClient.delayResp01ConsumerTimer=${delayResp01ConsumerTimer}
kafkaClient.ipResp01ConsumerTimer=${ipResp01ConsumerTimer}
kafkaClient.snapReportConsumerTimer=${snapReportConsumerTimer}
kafkaClient.snapResp01ConsumerTimer=${snapResp01ConsumerTimer}
kafkaClient.timeResp01ConsumerTimer=${timeResp01ConsumerTimer}
kafkaClient.versionResp01ConsumerTimer=${versionResp01ConsumerTimer}
ammeter.DeleteAmmeterImgTimer=${deleteAmmeterImgTimer}

4.打包
不选择方式的话默认打包配置activation标签的信息
这里写图片描述
查看jar配置信息
这里写图片描述
测试以及生产打包方式为
使用命令mvn clean install -P pom.xml中配置的环境id
如:打包测试环境
命令:mvn clean install -Ptest

注:-P参数激活指定的profile,参数的值是profile的id

如:这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值