在开发过程, 我们习惯把一些配置信息写到一个单独的的文件中. 如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
如: