`
glacier3
  • 浏览: 384830 次
  • 性别: 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 过滤文件夹打包

    "maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的配置文件打包。下面将详细解释这一过程。 在开发环境中,我们通常会有多种配置文件,比如`application-dev....

    使用maven 部署环境 mvc模式 实现 登录 退出登录注册 过滤和监听的功能

    本教程将详细介绍如何使用Maven和 MVC模式来实现登录、退出登录、注册、过滤和监听功能。 1. **Maven环境搭建** Maven是Apache组织提供的一个项目管理工具,通过XML配置文件管理项目的构建、报告和依赖关系。首先...

    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 激活属性文件的...

    【超级好用】maven 3.6.1

    Maven 3.6.1是Maven项目发布的一个稳定版本,其主要特性包括性能优化、错误修复和新功能的添加。 ### Maven的核心概念 1. **项目对象模型(Project Object Model, POM)**:Maven的核心是POM,它是项目配置信息的...

    MavenRunHelper.zip

    5. **自定义过滤器**: Maven Helper允许用户自定义过滤规则,只显示关心的依赖,隐藏不相关的部分,使得依赖管理更加聚焦。 6. **聚合构建视图**: 对于包含多个模块的多模块Maven项目,插件可以提供一个聚合视图,...

    Intellij IDEA中使用maven filter遇到的问题

    在IntelliJ IDEA中使用Maven Filter功能时,开发者可能会遇到一些挑战,这些挑战主要涉及到配置、资源过滤以及与项目构建的交互。首先,我们来深入理解Maven Filter及其在IntelliJ IDEA中的应用。 Maven Filter是...

    maven helper idea 插件

    4. **辅助POM编辑**:Maven Helper还提供了POM助手功能,可以智能提示并自动完成POM.xml文件中的标签、属性和值,提升编辑效率。同时,它还能检查POM配置的正确性,防止因语法错误导致的构建失败。 5. **版本升级**...

    maven servlet 3.0 eclipse config video

    而Servlet 3.0是Java EE 6的一部分,引入了许多新功能,如注解配置、异步处理和过滤器链的增强。 **Maven配置** 1. **安装Maven**: 首先,你需要下载并安装Apache Maven到你的系统中,确保将其路径添加到系统环境...

    maven中文文档

    Maven的配置主要通过`settings.xml`文件进行,它可以设置全局的Maven属性,如本地仓库路径、代理服务器设置、远程仓库配置等。 **六、Maven插件** 常见的Maven插件包括: - `maven-compiler-plugin`:用于编译源...

    maven_parent.rar

    6. **Maven插件**:Maven插件用于扩展Maven的功能,如编译源码、运行测试、打包应用等。在父工程中,可以配置全局插件以供所有子工程共享。 通过学习这个案例,开发者能够掌握如何利用Maven构建复杂的多模块项目,...

    Maven视频资料及如何学习心得体会

    Maven,一个由Apache软件基金会开发的项目管理工具,主要功能在于项目构建、依赖管理和项目信息管理。它通过XML格式的配置文件(pom.xml)来定义项目属性和依赖关系,使得开发者能够轻松地构建、测试和部署Java项目...

    maven项目下用 jetty 启动热部署

    当我们使用Maven构建Java Web项目时,结合Jetty服务器,可以实现项目的热部署功能,即在开发环境中修改代码后无需重新启动服务器,改动就能实时生效,极大地提高了开发效率。 在Maven项目中启用Jetty热部署,主要...

    maven多环境配置打包

    通常,开发者会创建多个Maven配置文件(profiles),每个文件对应一个特定的环境,然后通过filtering功能过滤资源文件中的变量,实现环境间配置的切换。 【标签】:“源码 工具” “源码”标签暗示了讨论可能涉及...

    maven多环境部署pom文件实例

    3. **构建生命周期阶段(Build Profiles)**:Maven的Profile功能允许为不同环境定义不同的配置。在POM文件中定义profile,每个profile包含特定环境的配置。例如: ```xml &lt;id&gt;dev &lt;directory&gt;src/main...

    maven Springmvc 4.16 环境搭建

    在resources目录下,创建`application.properties`文件,配置Spring Boot的属性,包括数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/yourdb spring.datasource.username=...

    maven构建的Tomcat源码

    6. **自定义与扩展**:对于开发者而言,理解Tomcat源码意味着可以自定义Tomcat的行为,比如编写新的连接器、Valves(请求处理管道中的节点)或者过滤器,以满足特定的业务需求。 7. **学习与调试**:通过阅读和分析...

    maven web 登录

    本教程将深入探讨如何使用Maven创建一个Web应用,并实现用户登录功能。 ### Maven基础 1. **Maven项目结构**:Maven项目遵循约定优于配置的原则,其基本目录结构包括`src/main/java`(源代码),`src/main/...

    Maven第二节

    - Maven 插件扩展了 Maven 的功能,如 Javadoc 生成、源码打包等。每个插件都有自己的目标,通过 `mvn plugin:goal` 命令调用。 - 例如,`maven-javadoc-plugin` 用于生成 Javadoc,`maven-source-plugin` 可以...

    springcloud_weather_maven_demo.7z

    10. **智能路由**:Spring Cloud Zuul是API网关组件,可以对微服务间的请求进行路由,同时提供过滤功能,如安全控制、监控、动态路由等。 这个“springcloud_weather_maven_demo”项目是一个综合性的学习资源,涵盖...

Global site tag (gtag.js) - Google Analytics