《Maven实战》第14章 灵活的构建
- 面对不同环境的差异能够灵活的构建项目,
- 操作系统的差异
- 开发环境、测试环境、产品环境的差异(最常用)
- 不同客户的差异
- Maven中灵活的构建:属性、资源过滤、profile
- 14.1Maven属性
- 6类Maven属性
- 内置属性:${basedir}表示项目根目录,及包含pom.xml文件的目录;${version}表示项目的版本
- POM属性:可用于引用pom文件中对应元素的值。
- 重要的pom属性

- 重要的pom属性
- 自定义属性:pom中<properties>下自定义的属性
- Settings属性:可用于引用settings.xml文件中元素的值,以settings.开头。
- 示例:${settings.localRepository}可引用本地仓库的地址
- Java系统属性:可用于引用Java系统属性。可使用mvn help:system查看Java系统属性。
- 环境变量属性:可用于引用环境变量,以env.开头。可使用mvn help:system查看所有环境变量。
- 示例:${env.JAVA_HOME}可引用JAVA_HOME环境变量。
- 6类Maven属性
- 14.2 资源过滤
- 将不同的环境下的配置抽取出来,如数据库配置,依照不同的环境使用不同的配置
- 一般资源文件:
- src/main/resources/目录下,打包后位于WAR包的WEB-INF/classes,即应用程序的classpath中
- web资源文件:
- src/main/webapp目录下,打包后位于WAR包的根目录,及打包后不在应用程序的classpath中
- 一般资源文件和web资源文件默认都不会被过滤,两者的过滤不会相互影响,即:开启一般资源文件过滤不会影响到web资源过滤
- 14.3 profile
配置profile
根据不同环境配置profile,并默认激活online<profiles><profile><id>online</id><activation><activeByDefault>true</activeByDefault></activation><properties><resource.path>src/main/profile/online</resource.path></properties></profile><profile><id>offline</id><properties><resource.path>src/main/profile/offline</resource.path></properties></profile></profiles>资源过滤
<finalName>leaf</finalName><filters><!-- 定义了变量配置文件的地址 --><filter>${resource.path}/profile.properties</filter></filters><resources><resource><directory>src/main/resources</directory><!-- 为true,会将相关文件中${property}的地方,用profile.properties中的变量进行替换 --><filtering>true</filtering><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource><resource><directory>${resource.path}</directory></resource></resources></build>- 使用-P参数激活:mvn clean package -Poffline
- src/main/profile/offline/profile.properties
db.url=infleaf_inf_leaf_devdb.username=inf_leaf#app.key=com.sankuai.inf.leaf.serviceapp.key=com.sankuai.inf.leaf.servicezk.hosts=10.20.63.112:2181,10.20.62.112:2181,10.20.41.42:2181 springContext.xml
//other configurations<!-- 本机appkey --><beanid="appKey"class="java.lang.String"><constructor-argvalue="${app.key}"/></bean>//other configurations
《Maven实战》第14章 灵活的构建的更多相关文章
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- 学习笔记——Maven实战(六)Gradle,构建工具的未来?
Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们 ...
- 学习笔记-[Maven实战]-第三章:Maven使用入门(1)
说明:[Maven实战]一书还介绍了怎么样手工创建Maven工程,学习这本书是为了能尽快在工作中使用,就忽略了手工建工程的部分 如果想了解这部分的内容,可以自己看看书 开始: 1.新建一个maven工 ...
- Java并发编程实战 第14章 构建自定义的同步工具
状态依赖性 定义:只有满足特定的状态才能继续执行某些操作(这些操作依赖于固定的状态,这些状态需要等待别的线程来满足). FutureTask,Semaphroe,BlockingQueue等,都是状态 ...
- 《Maven实战》笔记-10-灵活的构建
一.灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就 ...
- maven入门(1-4)使用eclipse构建maven项目
1. 安装m2eclipse插件 要用Eclipse构建Maven项目,我们需要先安装meeclipse插件 点击eclipse菜单栏Help->Eclipse Marketplac ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第23章 从零构建和部署去中心化投票App,decentralization Voting Dapp
P90 .1-从零构建和部署去中心化投票App-01 P91 .2-从零构建和部署去中心化投票App-02 P92 .3-从零构建和部署去中心化投票App-03 参考博文:http://liyuech ...
- 学习笔记-[Maven实战]-第三章:Maven使用入门(3)
这里说一下在建测试工程里遇到的问题 1.第一次建工程,junit依赖始终没有成功,最后删除现在工程,新建了一个工程就好了 2.使用junit4的问题.工程默认的依赖是junit3.8.1,我改成了4. ...
- 学习笔记-[Maven实战]-第三章:Maven使用入门(2)
使用maven执行编译和测试 1.maven执行编译 (1).在pom.xml上点右键,选择Maven build... (2).在Goals里输入clean complie,执行编译 执行结果: [ ...
随机推荐
- NYOJ 821 简单求值【简单题】
/* 解题人:lingnichong 解题时间:2014.10.18 00:46 解题体会:简单题 */ 简单求值 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描写叙述 ...
- iOS 开发之--打测试包的时候报错的解决方法
在打测试包的时候,一直出现一个报错,解决方法如下: 方法一: 描述文件所在目录是:~/Library/MobileDevice/Provisioning\ Profiles/,可以直接前往文件夹,把所 ...
- 调结者(Dispatcher)之执行action
调结者的执行action StrutsExecuteFilter类的工作就是执行对应的action请求.StrutsExecuteFilter类的工作还需要有一个叫ExecuteOperations类 ...
- 初步了解 cURL
今天需要用PHP模拟post请求,查了查资料,了解到cURL.看了一篇博客,写的很详细,就转载了,与大家分享.[原文链接] 什么是cURL?可能还有很多同学没有听说过这个工具,我先来给大家简单介绍下什 ...
- hdu2469(计算几何)
枚举所有可能的半径,然后将所有满足这个半径的点按角度(与x轴正半轴的夹角)排序. 然后一遍扫描求出在这个半径下选k个点所需的最小面积 . 思路还是比较简单,实现略有些繁琐. 要先将点的坐标转换为角度. ...
- mysql查询某周的起始日期和终止日期
select subdate(curdate(),date_format(curdate(),'%w')-1) select subdate(curdate(),date_format(curdate ...
- 把 hhkb 压在mac pro上面用
不知道你们有没有这种感觉, 用惯了外接键盘,然后切换到笔记本自带键盘的时候 手指会有不适应感? 直接 hhkb 放2018款的mac pro上总会压着原来的键盘, 而且我也不想直接禁用掉笔记本自带的键 ...
- Byzantine failures
https://baike.baidu.com/item/拜占庭将军问题/265656?fr=aladdin 拜占庭将军问题(Byzantine failures),是由莱斯利·兰伯特提出的点对点通信 ...
- tpot从elastic search拉攻击数据之二 配置端口映射
虽然知道了本地的数据接口位置,但是我们需要的是从远程拉取数据,所以我们需要更改es的ip端口为0.0.0.0:xxxx. 直接修改下图的elasticsearch.yml配置文件,结果发现无效. 这是 ...
- Python每日一练------内置函数+内置变量+内置模块
1.内置函数 Python所有的内置函数 Built-in Functions abs() divmod() input() open() staticmethod() all() e ...