`
glacier3
  • 浏览: 375404 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

maven的属性过滤功能

阅读更多
今天看书的时候看到了maven一个比较重要的小技巧,觉得不错。而且它的讲解在新的maven版本中是不可用的,所以向大家展示下:

maven的properties filter功能可以帮你自动替换配置文件中以${}包裹的变量。
1. spring bean的配置文件app.xml内容:
...
      <bean id="dataSource" destroy-method="close" 
           class="org.apache.commons.dbcp.BasicDataSource">
      <property name="driverClassName" value="${jdbc.driverClassName}"/>
      <property name="url" value="${jdbc.url}"/>
      <property name="username" value="${jdbc.username}"/>
      <property name="password" value="${jdbc.password}"/>
  </bean>
...

该配置文件放置在src/main/resources目录下。

2.pom.xml中的build标记内添加:
<resources>
		<resource>
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>

以上xml片段的功能的目的是开启对src/main/resources目录下的property filtering功能。所以上面的配置表示在该目录下的所有文件都会被扫描。如果要指定具体的文件,可以使用includes标记,该标记支持ant路径表达式。

3.在pom.xml中定义属性。

 <properties>
   <jdbc.driverClassName>
     com.mysql.jdbc.Driver</jdbc.driverClassName>
   <jdbc.url>jdbc:mysql://localhost:3306/development_db</jdbc.url>
   <jdbc.username>dev_user</jdbc.username>
   <jdbc.password>s3cr3tw0rd</jdbc.password>
 </properties>


4.编译。

mvn compile


现在查看target/classes目录的app.xml。你会发现xml中的所有变量都被替换了:
 <bean id="dataSource" destroy-method="close" 
             class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/development_db"/>
        <property name="username" value="dev_user"/>
        <property name="password" value="s3cr3tw0rd"/></bean>


结合profile功能,你可以在软件发布之前,定义不同的变量。

分享到:
评论
1 楼 宋建勇 2014-05-24  
你爷爷的,这个很给力啊!找了好久了!赞一个!

相关推荐

    maven window下安装包

    第14章:灵活的构建/14.2 Maven属性的使用/14.2.3 属性解析/14.2.3.2 属性解析使用举例 第14章:灵活的构建/14.2 Maven属性的使用/14.2.3 属性解析/14.2.3.3 实例完整源代码 第14章:灵活的构建/14.3 激活属性文件的...

    sys-banner-db-api-v13

    使用Maven过滤器“功能”将Maven属性添加到资源过滤目录中存储的文件中的代码中……具体来说,使用项目名称更新api.base和log4j2配置。 目的 该项目是一个示例,可以进行部署,并在正确配置后运行。 但是,此方法的...

    final-email-api

    最小日志记录连接器, 安全属性连接器(正式称为安全属性占位符), 使用mule-maven-plugin描述符进行Maven部署, Api Manager网关自动发现注册, 使用Maven过滤器“功能”将Maven属性添加到资源过滤目录中存储的...

    高效Java敏感词过滤系统AC自动机算法源码,支持独立部署与集成注册中心

    - Maven命令脚本:1个(SensitiveWords/mvnw) 系统特色功能: - 敏感词组合匹配机制,确保高效过滤; - 独立后台管理,实现敏感词的增删查功能; - 集成主流注册中心,便于服务管理和发现; - 既可作为独立应用...

    loan-picker-lendingclub:具有完全可定制的筛选器和计划程序的Cherry Pick和自动投资借贷俱乐部贷款。 尽早获取贷款,永久免费。 (Java Maven)

    (简单的Java / Maven构建) 立即获得新贷款-使用完全可自定义的自动投资计划程序选择何时以及如何进行投资,该计划具有多次重试和自动过滤已购买贷款的功能。 查看下面的,了解定期自动发送“收到投资订单”电子...

    SYPRO示例项目源码和EasyUI入门视频教程

    第17课(combobox属性介绍、combobox的autocomplete功能、联动功能,本地过滤和远程过滤功能、combobox方法介绍。简要描述datagrid行编辑模式中editor类型是combobox需要注意的问题。简要描述easyui1.3的data-options...

    Spring Boot中文文档.rar

    10.1.1.Maven安装 10.1.2.Gradle安装 10.2.安装Spring Boot CLI 10.2.1.手动安装 10.2.2.使用SDKMAN安装! 10.2.3.OSX Homebrew安装 10.2.4.MacPorts安装 10.2.5.命令行完成 10.2.6.Windows ...

    java-cas-client:Apereo Java CAS客户端

    客户端由一系列Servlet过滤器组成,这些过滤器适用于大多数基于Java的Web应用程序。 它还用作API平台,以编程方式与CAS服务器进行交互,以进行身份​​验证请求,验证票证和使用主体属性。 所有客户端工件都发布到...

    互联网创意产品众筹平台

    问题一箩筐-jdbc.properties属性文件设置错误,无法连接数据库, Q) {; h4 t( ?: r& ^ │ 5.问题一箩筐-关于url扩展名称问题 │ 6.问题一箩筐-关于打印日志log4j问题5 y: }- e: Z$ p6 X9 d0 A9 @ │ 7.问题一箩筐-生产...

    Grails 中文参考手册

    6.6.3 过滤器的功能 6.7 Ajax 6.7.1 用Prototype实现Ajax 6.7.1.1 异步链接 6.7.1.2 更新内容 6.7.1.3 异步表单提交 6.7.1.4 Ajax事件 6.7.2 用Dojo实现Ajax 6.7.3 用GWT实现Ajax 6.7.4 服务端的Ajax 6.8 内容协商 7...

    jeesite后台框架

    Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。 模块化数据库自动升级程序,当模块升级代码需要更新时,自动对应版本执行SQL更新。 授权模块,支持CAS单点登录,简单properties配置即可...

    xyz-hub:XYZ Hub是用于访问和管理地理空间数据的RESTful Web服务

    通过过滤属性值来探索地理要素 检索您的空间的统计信息 地理数据作为具有统计信息的六边形的分析表示 连接不同的数据源 使用处理器构建实时地理数据管道 附加侦听器以对事件做出React 您可以在和找到更多信息。 XYZ...

    report 开源的访问层中间件,基于java平台

    report 是一个开源的访问层中间件,基于java平台,依赖于spring,以...d)@Activate:标注在自定义的过滤器上,order属性值为排序值,取值范围int,如有重复则顺延 注:自定义解析器扩展,过滤器扩展等等参照源码。

    mdhs-prototype

    该应用程序包括为托儿服务提供者执行邻近搜索并将各种过滤器应用于搜索和结果的功能。 该应用程序是使用以用户为中心的设计和敏捷开发的最佳实践开发的,在本文档中将对此进行详细介绍。 这些都是公司通过与公共...

    spring security 参考手册中文版

    2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 Gradle存储库 23 使用Spring 4.0.x和Gradle 24 2.4.3项目模块 25 核心 - spring-security-core.jar 25 远程处理 - spring-security-remoting.jar 25 ...

    Spring in Action(第2版)中文版

    8.3.2用hessian或burlap公开bean的功能 8.4使用httpinvoker 8.4.1通过http访问服务 8.4.2把bean作为http服务公开 8.5spring和web服务 8.5.1使用xfire将bean输出为web服务 8.5.2使用jsr-181注释声明web服务 ...

    Spring in Action(第二版 中文高清版).part2

    8.3.2 用Hessian或Burlap公开Bean的功能 8.4 使用HTTP invoker 8.4.1 通过HTTP访问服务 8.4.2 把Bean作为HTTP服务公开 8.5 Spring和Web服务 8.5.1 使用XFire将Bean输出为Web服务 8.5.2 使用JSR-181注释声明...

    Spring in Action(第二版 中文高清版).part1

    8.3.2 用Hessian或Burlap公开Bean的功能 8.4 使用HTTP invoker 8.4.1 通过HTTP访问服务 8.4.2 把Bean作为HTTP服务公开 8.5 Spring和Web服务 8.5.1 使用XFire将Bean输出为Web服务 8.5.2 使用JSR-181注释声明...

    学生信息管理系统:大学生信息管理系统-初学路上自己摸索实践的项目

    添加CsrfInterceptor拦截器,对修改请求进行CsrfToken的校验,有效防止CSRF攻击对注册用户信息纠正服务层,强化在aop方法中对输入身份属性的校正,对“管理员”分支进行过滤,并引发异常,防止攻击者拦截请求JSON...

Global site tag (gtag.js) - Google Analytics