maven的配置文件取不同版本
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的配置文件取不同版本的更多相关文章
- Maven中配置默认JDK版本
使用Maven构建项目时,默认是使用jdk1.3版本,目前很多使用泛型的项目肯定是无法通过编译,除了修改项目的pom文件外,还可以在Maven的配置文件settings.xml中添加如下配置来解决: ...
- Maven的配置文件pom.xml
Maven的配置文件pom.xml 简介: 什么是POM? POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml. ...
- 【工具学习】——教你读懂Maven的配置文件
[前言] 最近在项目中用到了maven工具,相信很多第一次接触maven的人都有这样的困惑,maven的文件很简单,就像下图中的结构一样,但是它的功能十分强大,那是怎么做到的呢?配置文件!配置文件里是 ...
- Maven全局配置文件settings.xml详解(转)
Maven全局配置文件settings.xml详解 目录 一.概要 1.settings.xml的作用2.settings.xml文件位置3.配置的优先级 二.settings.xml元素详解 1 ...
- maven 检查依赖冲突和版本冲突
maven 检查依赖冲突和版本冲突 在项目发布的时候,一般都需要进行依赖冲突检查或者重复类的检查,这个时候我一般会使用下面的两个命令: 1 2 3 mvn -U clean package - ...
- Unsupported major.minor version 51.0 在配置/运行Maven工程时,JDK与Maven所引用的jdk版本不一致
在配置Maven工程,部署到tomcat服务器运行的过程中,遇到如下错误: "Unsupported major.minor version 51.0 " 错误原因是由于maven ...
- maven 修改默认的JDK版本
maven jdk 版本配置 maven 默认使用的 jdk 版本 新建一个 maven 项目,如下 : 项目左下方出现一个感叹号,JRE 显示的是 1.5 版本.解决方式有两种,一种是配置 pom. ...
- maven settings 配置文件
maven settings 配置文件 <?xml version="1.0" encoding="UTF-8"?> <settings xm ...
- 如何在Maven官网下载历史版本
如何在Maven官网下载历史版本 历史版本一般会隔一段时间,便找不到,官网会及时显示的是最新版本.不多说,直接进入. https://archive.apache.org/dist/maven/bin ...
随机推荐
- hdu_1226超级密码(BFS)
超级密码 Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息:密码是 ...
- 【题解】POJ2279 Mr.Young′s Picture Permutations dp
[题解]POJ2279 Mr.Young′s Picture Permutations dp 钦定从小往大放,然后直接dp. \(dp(t1,t2,t3,t4,t5)\)代表每一行多少人,判断边界就能 ...
- Java语言实现简单FTP软件------>辅助功能模块FTP站点管理的实现(十二)
1.FTP站点管理 点击"FTP站点管理"按钮,弹出对话框"FTP站点管理",如下图 1) 连接站点 在FTP站点管理面板上选好要连接的站点,点击"连 ...
- 16.Django提交表单
Django表单提交一共有三种方式: 1.不使用Django组件进行提交 2.使用django.forms.Form(所有表单类的父类)进行提交 3.使用django.forms.ModelForm( ...
- 使用 Node.js 对文本内容分词和关键词抽取
npm install nodejieba var nodejieba = require("nodejieba"); var result = nodejieba.cut(&qu ...
- Java注释Override、Deprecated、SuppressWarnings
在J2SE5.0的java.lang包中预定义了三个注释:Override.Deprecated和SuppressWarnings Override 这个注释的作用是标识某一个方法是否覆盖了它的父类的 ...
- sql查询字段是否为空
sql 查询某字段为空 select * from 表名 where 字段名 is null sql 查询某字段不为空 select * from 表名 where 字段名 is not null s ...
- Java进阶学习:log4j的学习和使用
Java进阶学习——log4j的学习和使用 简介Loj4j Log4j的组成 Log4j主要由三大组组件构成: Logger: 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息 ...
- 小程序canvas转base64方法 使用upng库 亲测没问题
普通字符串base64编码转化可以使用原生的atob和btoa方法 图片转码:传统的图片转base64的方法可以采用FileReader的readAsDataURL()或canvas.toDataUR ...
- PAT 天梯赛 L2-009. 抢红包 【排序】
题目链接 https://www.patest.cn/contests/gplt/L2-009 思路 用结构体存储,然后结构体排序 注意一下 个人编号是从 1 开始 计数的 AC代码 #include ...