今天
看书的时候看到了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功能,你可以在软件发布之前,定义不同的变量。
分享到:
相关推荐
"maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的配置文件打包。下面将详细解释这一过程。 在开发环境中,我们通常会有多种配置文件,比如`application-dev....
本教程将详细介绍如何使用Maven和 MVC模式来实现登录、退出登录、注册、过滤和监听功能。 1. **Maven环境搭建** Maven是Apache组织提供的一个项目管理工具,通过XML配置文件管理项目的构建、报告和依赖关系。首先...
第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项目发布的一个稳定版本,其主要特性包括性能优化、错误修复和新功能的添加。 ### Maven的核心概念 1. **项目对象模型(Project Object Model, POM)**:Maven的核心是POM,它是项目配置信息的...
5. **自定义过滤器**: Maven Helper允许用户自定义过滤规则,只显示关心的依赖,隐藏不相关的部分,使得依赖管理更加聚焦。 6. **聚合构建视图**: 对于包含多个模块的多模块Maven项目,插件可以提供一个聚合视图,...
在IntelliJ IDEA中使用Maven Filter功能时,开发者可能会遇到一些挑战,这些挑战主要涉及到配置、资源过滤以及与项目构建的交互。首先,我们来深入理解Maven Filter及其在IntelliJ IDEA中的应用。 Maven Filter是...
4. **辅助POM编辑**:Maven Helper还提供了POM助手功能,可以智能提示并自动完成POM.xml文件中的标签、属性和值,提升编辑效率。同时,它还能检查POM配置的正确性,防止因语法错误导致的构建失败。 5. **版本升级**...
而Servlet 3.0是Java EE 6的一部分,引入了许多新功能,如注解配置、异步处理和过滤器链的增强。 **Maven配置** 1. **安装Maven**: 首先,你需要下载并安装Apache Maven到你的系统中,确保将其路径添加到系统环境...
Maven的配置主要通过`settings.xml`文件进行,它可以设置全局的Maven属性,如本地仓库路径、代理服务器设置、远程仓库配置等。 **六、Maven插件** 常见的Maven插件包括: - `maven-compiler-plugin`:用于编译源...
6. **Maven插件**:Maven插件用于扩展Maven的功能,如编译源码、运行测试、打包应用等。在父工程中,可以配置全局插件以供所有子工程共享。 通过学习这个案例,开发者能够掌握如何利用Maven构建复杂的多模块项目,...
Maven,一个由Apache软件基金会开发的项目管理工具,主要功能在于项目构建、依赖管理和项目信息管理。它通过XML格式的配置文件(pom.xml)来定义项目属性和依赖关系,使得开发者能够轻松地构建、测试和部署Java项目...
当我们使用Maven构建Java Web项目时,结合Jetty服务器,可以实现项目的热部署功能,即在开发环境中修改代码后无需重新启动服务器,改动就能实时生效,极大地提高了开发效率。 在Maven项目中启用Jetty热部署,主要...
通常,开发者会创建多个Maven配置文件(profiles),每个文件对应一个特定的环境,然后通过filtering功能过滤资源文件中的变量,实现环境间配置的切换。 【标签】:“源码 工具” “源码”标签暗示了讨论可能涉及...
3. **构建生命周期阶段(Build Profiles)**:Maven的Profile功能允许为不同环境定义不同的配置。在POM文件中定义profile,每个profile包含特定环境的配置。例如: ```xml <id>dev <directory>src/main...
在resources目录下,创建`application.properties`文件,配置Spring Boot的属性,包括数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/yourdb spring.datasource.username=...
6. **自定义与扩展**:对于开发者而言,理解Tomcat源码意味着可以自定义Tomcat的行为,比如编写新的连接器、Valves(请求处理管道中的节点)或者过滤器,以满足特定的业务需求。 7. **学习与调试**:通过阅读和分析...
本教程将深入探讨如何使用Maven创建一个Web应用,并实现用户登录功能。 ### Maven基础 1. **Maven项目结构**:Maven项目遵循约定优于配置的原则,其基本目录结构包括`src/main/java`(源代码),`src/main/...
- **Maven属性**: 使用Maven属性来管理变量,提高配置的灵活性。 - **资源过滤**: 在构建过程中替换资源文件中的占位符。 - **Profile**: 配置不同的环境设置,如开发、测试和生产环境。 - **Archetype**: 创建项目...
- Maven 插件扩展了 Maven 的功能,如 Javadoc 生成、源码打包等。每个插件都有自己的目标,通过 `mvn plugin:goal` 命令调用。 - 例如,`maven-javadoc-plugin` 用于生成 Javadoc,`maven-source-plugin` 可以...
10. **智能路由**:Spring Cloud Zuul是API网关组件,可以对微服务间的请求进行路由,同时提供过滤功能,如安全控制、监控、动态路由等。 这个“springcloud_weather_maven_demo”项目是一个综合性的学习资源,涵盖...