1. 两个地方需要配置
首先是要定义配置源,dev/test/prod对应的配置源需要指定;这是灵活的,可变的;
其次要定义配置文件,该配置文件里面的内容采用占位符的方式来编制,在编译打包的过程中要动态根据配置源来进行填充。

2. 定义配置分类
对于第一个地方,配置分类,是要在maven的pom文件中的<profiles>中定义<profile>节点中进行定义,指定各种配额场景的配置源路径,以及配置项,这里注意,配置项(properties节点)只是应用于POM文件(占位符的替换),配置源路径指定的文件则是用于配置指定的配置文件(下面要讲到的),下面的配置定义了两类配置分类,分别是dev和test

     <profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<filters.env>dev</filters.env>
<mvn.upload.serverId>deploy_server_65</mvn.upload.serverId>
<mvn.upload.url>scp://root@10.1.108.68:/var/lib/hbase</mvn.upload.url>
<mvn.upload.command>rm -rf /var/lib/hbase/bigdata-stat-3.2.2.jar</mvn.upload.command>
<mvn.upload.phase>package</mvn.upload.phase>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<filters.env>test</filters.env>
<mvn.upload.serverId>deploy_server_104</mvn.upload.serverId>
<mvn.upload.url>scp://iotwh@192.168.156.104:/home/iotwh</mvn.upload.url>
<mvn.upload.command>rm -rf /home/iotwh/bigdata-stat-3.2.2.jar</mvn.upload.command>
<mvn.upload.phase>install</mvn.upload.phase>
</properties>
</profile>

  这里的<id>和<filter.env>是关键,未来通过命令行进行启动的"-Ptest"中的"test"就是id;properties里面的定义的内容都是在对应POM文件内部占位符;比如filters.env就是用于指定路径的一部分:

    <build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>${project.basedir}/filters/${filters.env}/conf.properties</filter>
</filters>
... ....
</build>

  这段配置指定了要处理占位符的文件,这里是指src/main/resources下面的所有的配置文件;占位符替换的内容在filter中有定义,${filters.env}这里分别是dev以及test,即如果在命令行中指定-Pdev,则采用dev/conf.properites里面的文件进行替换src/main/resources下面文件的占位符,如果是-Ptest,同样处理。
定义配置文件以及配置源
  这段代码指定了第二部分内容,指定配置源文件:

         <filters>
<filter>${project.basedir}/filters/${filters.env}/conf.properties</filter>
</filters>

  以下部分指定了资源文件路径,该目录下的配置文件内部的占位符都将会被填充:

             <resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>

  filter节点里面指定的就是配置文件,resource文件夹中的占位符都是通过指定的配置文件内容进行填充。比如resources文件夹下面的app.config

data.path=${data.path}
output.path=${output.path}
pboss.files=${pboss.files}
back.path=${back.path}

最新文章

  1. WPF显示GIF图的几种方式
  2. Partial backup 备份指定表/库
  3. ubuntu14.04编译安装Git2.7
  4. Leetcode 之Construct Binary Tree(52)
  5. Uva 12563,劲歌金曲,01背包
  6. Java SE知识点
  7. [转载]如何重装Grub,使其可以引导双系统
  8. WeMall微信商城源码插件会员卡代码详情
  9. mysql,jdbc、连接池
  10. 调参贝叶斯优化(BayesianOptimization)
  11. [PHP]正则表达式判断网址
  12. [模板] Manacher(马拉车)算法
  13. 获取2个集合List&lt;T&gt;的共同元素
  14. ubuntu ssh root登陆
  15. Codeforces 1088E Ehab and a component choosing problem
  16. Vue2.0项目实战语法
  17. kalilinux-权限提升
  18. Maven的安装环境变量配置
  19. C语言经典程序100例
  20. 【MVC5】使用权限+角色

热门文章

  1. 解决Eclipse的Team菜单中没有SVN选项的问题
  2. 什么是Mocking framework?它有什么用?(转)
  3. 九度OJ 1283:第一个只出现一次的字符 (计数)
  4. 九度OJ 1187:最小年龄的3个职工 (排序)
  5. Springboot整合日志时候出现的问题
  6. 在spring boot中使用自定义的properties
  7. [Oracle]根据字段值全库搜索相关数据表和字段
  8. model特性
  9. 每天一个Linux命令(19)find命令_初识
  10. 构造代码块、构造函数、this执行顺序