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}

maven的配置文件取不同版本的更多相关文章

  1. Maven中配置默认JDK版本

    使用Maven构建项目时,默认是使用jdk1.3版本,目前很多使用泛型的项目肯定是无法通过编译,除了修改项目的pom文件外,还可以在Maven的配置文件settings.xml中添加如下配置来解决: ...

  2. Maven的配置文件pom.xml

    Maven的配置文件pom.xml 简介: 什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml. ...

  3. 【工具学习】——教你读懂Maven的配置文件

    [前言] 最近在项目中用到了maven工具,相信很多第一次接触maven的人都有这样的困惑,maven的文件很简单,就像下图中的结构一样,但是它的功能十分强大,那是怎么做到的呢?配置文件!配置文件里是 ...

  4. Maven全局配置文件settings.xml详解(转)

    Maven全局配置文件settings.xml详解   目录 一.概要 1.settings.xml的作用2.settings.xml文件位置3.配置的优先级 二.settings.xml元素详解 1 ...

  5. maven 检查依赖冲突和版本冲突

    maven 检查依赖冲突和版本冲突   在项目发布的时候,一般都需要进行依赖冲突检查或者重复类的检查,这个时候我一般会使用下面的两个命令:   1 2 3 mvn -U clean package - ...

  6. Unsupported major.minor version 51.0 在配置/运行Maven工程时,JDK与Maven所引用的jdk版本不一致

    在配置Maven工程,部署到tomcat服务器运行的过程中,遇到如下错误: "Unsupported major.minor version 51.0 " 错误原因是由于maven ...

  7. maven 修改默认的JDK版本

    maven jdk 版本配置 maven 默认使用的 jdk 版本 新建一个 maven 项目,如下 : 项目左下方出现一个感叹号,JRE 显示的是 1.5 版本.解决方式有两种,一种是配置 pom. ...

  8. maven settings 配置文件

    maven settings 配置文件 <?xml version="1.0" encoding="UTF-8"?> <settings xm ...

  9. 如何在Maven官网下载历史版本

    如何在Maven官网下载历史版本 历史版本一般会隔一段时间,便找不到,官网会及时显示的是最新版本.不多说,直接进入. https://archive.apache.org/dist/maven/bin ...

随机推荐

  1. 页游手游服务器(一)c实现拓展lua网络

    把工作几年服务器相关的部分内容,通过服务器解决方案,做一次总结.整个实现的主体是lua脚本,lua实现主要缺少的两大块:1网络部分2数据库部分这两部分必须通过c/c++做扩展先来做net,主要是服务器 ...

  2. win7 32位下载安装redis并安装php_redis扩展

    redis打包文件下载地址:http://files.cnblogs.com/files/cuiwenyuan/Redis-3.2.100-Windows-32.zip php_redis.dll下载 ...

  3. 从springmvc启动日志学习

    javaee标准中,tomcat等web容器启动时走web.xml 先将各种contex-param 放到servletcontxt中变成parameter,然后开始启动容器,容器对外提供了liste ...

  4. 使用idea2017搭建SSM框架(转发:https://www.cnblogs.com/hackyo/p/6646051.html#!comments)

    步骤: 一.首先使用idea新建一个Maven webapp项目 点击Finish,第一次搭建可能会很慢,甚至可能需要VPN才能搭建成功 二.搭建目录结构 我这里列出的是搭建完了之后所有的目录和文件, ...

  5. 淘宝开源平台(taobao-code)使用

    偶尔之下翻到的这个东西,瞬间觉得足以解决自己在开发过程中的版本控制问题.就注册了一个试试.先是在度娘上搜寻“淘code”,进入官网之后直接注册.然后构建自己的项目,上传代码就OK了. 一.搜寻“淘co ...

  6. Kattis - fire2 【BFS】

    第二组样例: 题意 给出一个起始位置,然后要跑到这幢建筑物的外面,上下左右四个方向,只要是空地 就可以走 走一步 花费一秒 然后有若干串火苗,每一秒钟 会向上下左右 四个方向的空地 蔓延 但是 逃跑的 ...

  7. maven导入项目时,缺少部分source folder

    今天导入公司的maven项目时,少了一些source folder,运行启动正常,但是页面打不开,找不到对应的目录文件,使用maven更新项目,重启编辑器也无效. 问题描述如图所示,缺少了图中的2个目 ...

  8. ARM NEON 64bit 查找表替换

    没啥效果,如果表的长度在 64个uint8_t之类,应该可以提高查表速度,否则还是C来的快 #ifdef HAVE_NEON_AARCH64 void table_lookup_AArch64_neo ...

  9. CKeditor插件开发流程(一)

    1.放在多文件中 第一步:config.js中 config.extraPlugins = '插件名称';//注册插件,extraPlugins只允许出现一次,你如果之前有新增别的插件,那么用逗号分隔 ...

  10. electron—Chromium有酒,Node有肉

    谷歌V8引擎的出现,Node.js的诞生注定要把开发模式“搅乱”. 基于云应用,服务化,定制化的应用需求不断增加后使得传统的winform开发空间越来越小,而原来做前端的空间越来越大,Node.js ...