`
bibithink
  • 浏览: 29937 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven filter 配置的使用

阅读更多
 
目标
通过 Maven 的 filters 机制对不同环境(开发、预发布、生产)应用不同的配置信息
 
步骤
1. 首先需要配置 profile 信息,在不同的 profile 中指定变量 “env”为不同的值
<profiles>
    <!-- 开发/测试环境,默认激活 -->
    <profile>
        <id>debug</id>
        <properties>
            <env>debug</env>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault><!--默认启用的是debug环境配置-->
        </activation>
    </profile>
    <!-- 预发布环境 -->
    <profile>
        <id>staging</id>
        <properties>
            <env>staging</env>
        </properties>
    </profile>
    <!-- 生产环境 -->
    <profile>
        <id>online</id>
        <properties>
            <env>online</env>
        </properties>
    </profile>
</profiles>
 
2. 生成不同环境的配置文件
在 src/main/filters/ 目录下分别创建三个配置文件
filters.debug.properties
filters.staging.properties
filters.online.properties
配置文件中以 key=value 的形式配置一些参数信息,如:
database.driverClassName=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:8066/testdb?createDatabaseIfNotExist=true&amp;useUnicode=true
database.userName=username_for_debug
database.password=password_for_debug
 
3. 配置 Maven 编译时的过滤规则
在工程的 pom.xml 中添加如下配置信息
<build>
    <filters>
        <filter>src/main/filters/filters.${env}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>
 
4. 在资源文件中引用 filters 文件中配置的参数
这里以在 spring 配置文件中的使用举例说明
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
      destroy-method="close">
    <property name="driverClass" value="${database.driverClassName}"/>
    <property name="jdbcUrl" value="${database.url}"/>
    <property name="user" value="${database.userName}"/>
    <property name="password" value="${database.password}"/>
    。。。
</bean>
 
5.编译工程
我们在编译的时候需要指定 profile 信息,以便 Maven 找到对应的 filters 文件进行过滤。具体的编译命令如下,最后一个参数指定了编译的 profile 是 debug:
mvn clean package -pl com.bibithink.fooservice -am -Dmaven.test.skip -Pdebug
 
分享到:
评论

相关推荐

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

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

    Maven配置图文教程

    在Filter中输入org.apache.maven.archetypes,选择Artifact Id为maven-archetype-webapp的模板,依次输入GroupID、ArtifactID并完成创建。 2. 编写pom.xml:在项目根目录下创建pom.xml文件,这是Maven项目的配置...

    maven 简单实用的配置,打包,获取svn版本号

    maven 简单实用的配置,打包,获取svn版本号、仓库等等实用

    Springboot与Maven多环境配置文件夹解决方案.docx

    本文介绍了如何使用 SpringBoot 和 Maven 实现多环境配置文件夹解决方案,使用 Profile 功能来加载不同的配置文件,使用 Resources 和 Filter 来指定打包内容和替换变量,选择当前环境,加载对应的配置文件。

    使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程

    【使用Maven搭建S2SH工程详解一:...这个过程涵盖了Maven的项目管理、Struts2的请求处理、Jetty的本地开发服务器使用,以及Web应用的基础配置。通过这种方式,我们可以快速地启动一个S2SH项目,并进行后续的开发工作。

    上手提示:使用新版IDEA+Maven+Scala编写Spark程序

    ### 使用新版IDEA+Maven+Scala编写Spark程序的关键步骤 #### 一、理解IDEA在2017版中的变化 2017版的IntelliJ IDEA(简称IDEA)相较于之前版本,在界面设计与操作流程上进行了较大的改进与优化。对于初次接触这个...

    maven servlet 3.0 eclipse config video

    3. **监听器和过滤器**: 可以使用注解`@WebListener`和`@WebFilter`声明监听器和过滤器,简化了配置。 4. **部署描述符**: 虽然可以不写web.xml,但仍然支持传统的XML配置方式,方便兼容旧版本的代码。 在视频教程...

    maven2 使用手册

    - 使用`&lt;filter&gt;`标签引入外部属性文件。 - 使用`&lt;excludes&gt;`排除不需要过滤的资源文件。 ### Manifest 文件覆盖 通过配置`maven-jar-plugin`,可以指定自定义的`MANIFEST.MF`文件。 ### Maven 构建生命周期 Maven...

    maven搭建 SpringMVC+mybatis

    在命令行中,使用`mvn archetype:generate`命令创建一个基本的Maven Web项目。选择合适的archetype,如`maven-archetype-webapp`,并设置相应的属性,如groupId、artifactId和version。 接下来,我们需要在`pom.xml...

    Maven整合SSM示例

    6. 配置Web.xml:添加DispatcherServlet和Filter等配置,设置Spring和SpringMVC的监听器。 7. 测试:编写JUnit测试用例,验证SSM整合是否成功。 六、运行与调试 1. 使用Maven的install命令打包项目,生成war或jar...

    关于maven配置Tomcat的操作.docx

    在Java开发环境中,Maven和Tomcat的配合使用可以极大地提升开发效率,使得构建和部署Web应用程序变得简单。本文将详细介绍如何在IntelliJ IDEA(简称IDEA)中通过Maven配置Tomcat服务器,以便进行Java Web项目的开发...

    jeecg3.6.5/3.6.6(非maven)MyEclipse配置方法

    在本教程中,我们将详细介绍如何在MyEclipse环境下配置并使用Jeecg 3.6.5/3.6.6(非Maven版本)。 **第一步:导入Jeecg项目** - 将下载好的Jeecg源码包解压。 - 打开MyEclipse,选择`File` -&gt; `Import` -&gt; `...

    ssm+maven+shiro

    总结来说,"ssm+maven+shiro"项目是一个完整的Java Web应用示例,它展示了如何使用Spring、Spring MVC和MyBatis构建业务逻辑,通过Maven进行项目管理,以及利用Apache Shiro实现安全控制。这样的项目结构和实践,...

    java框架maven的demo

    5. **WEB-INF**目录:这个目录是Web应用的标准结构,其中`web.xml`文件是Web应用的部署描述符,用来配置Servlet、Filter和监听器等。SpringMVC的前端控制器DispatcherServlet通常在这里注册。 6. **META-INF**目录...

    ssm整合.zip ssm整合 maven项目

    例如,检查web.xml文件中的Servlet和Filter配置,确保它们与所使用的Tomcat版本兼容。此外,IDEA的设置也需注意,要确保其使用的Tomcat版本与项目配置一致。 标签中提到了"java",表明这是一个Java语言开发的项目;...

    maven项目demo

    Maven通过使用一种标准化的项目对象模型(Project Object Model,POM),使得开发者可以更轻松地配置和管理项目的构建过程。本文将详细介绍如何在MyEclipse 2014中搭建一个基于Maven的Web应用项目。 首先,我们需要...

    maven +Jersey Restful实现源码

    为了在 Maven 项目中运行 Jersey,我们需要在 `web.xml` 文件中配置 Servlet: ```xml ... &lt;servlet-name&gt;Jersey Web Application &lt;servlet-class&gt;org.glassfish.jersey.servlet.ServletContainer ...

    Maven下SSM整合demo

    - 在web.xml中配置Servlet和Filter:初始化DispatcherServlet,配置Spring的ContextLoaderListener以加载Spring的根上下文。 6. **运行与测试**:在Maven环境中,可以通过`mvn clean install`命令来编译和打包项目...

    eclipse导入maven项目报错解决办法

    - 查找项目中的`Filter`目录,定位到数据库配置文件。 - 调整`&lt;activeByDefault&gt;`属性来控制哪些配置文件生效。 **3.3 启动项目报错** - **解决启动报错**: - 若出现类似`java.lang.NoClassDefFoundError`错误...

Global site tag (gtag.js) - Google Analytics