`

Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理

 
阅读更多
Filtering 功能Filtering 是 Maven Resources Plugin 的一个功能,它会使用系统属性或者项目属性的值替换资源文件(*.properties,*.xml)当中 ${…} 符号的值。比如你系统属性有一项 “user.name=foobar”,那么资源文件当中的 ${user.name} 符号会在 Maven 编译时自动被替换为 “foobar”。

Profile 功能Profile 的作用是允许你在项目文件(pom.xml)里定义若干个 profile 段,然后在编译时选择其中的一个用于覆盖项目文件原先的定义。

<profiles>
        <profile>
            <id>online</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <build.profile.id>online</build.profile.id>
            </properties>
            <build>
                <filters>
                    <filter>profiles/online/config.properties</filter>
                </filters>
                <resources>
                    <resource>
                        <filtering>true</filtering>
                        <directory>src/main/resources</directory>
                        <includes>
                            <include>jdbc.properties</include>
                            <include>log4j.properties</include>
                            <include>system.properties</include>
                            <include>alarm.properties</include>
                        </includes>
                    </resource>
                    <resource>
                        <filtering>false</filtering>
                        <directory>src/main/resources</directory>
                    </resource>
                </resources>
            </build>
        </profile>
        <profile>
            <id>local</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <build.profile.id>local</build.profile.id>
            </properties>
            <build>
                <filters>
                    <filter>profiles/${build.profile.id}/config.properties</filter>
                </filters>
                <resources>
                    <resource>
                        <filtering>true</filtering>
                        <directory>src/main/resources</directory>
                        <includes>
                            <include>jdbc.properties</include>
                            <include>log4j.properties</include>
                            <include>system.properties</include>
                            <include>alarm.properties</include>
                        </includes>
                    </resource>
                    <resource>
                        <filtering>false</filtering>
                        <directory>src/main/resources</directory>
                    </resource>
                </resources>
            </build>
        </profile>
    </profiles>


在编译项目时,可以使用 -P 参数指定需要使用的 profile 的 id,比如下面命令将会使用
$mvn clean compile -P online
如果想使用 local profile 则执行如下命令:
$mvn clean compile -P online
假如不指定 -P 参数的话,则会使用 activeByDefault=true 的一项(即 local)。
分享到:
评论

相关推荐

    使用maven Filtering实现多环境构建

    在软件开发过程中,多环境构建是一项重要的任务...总之,Maven Filtering与Profile的结合使用,为Java开发者提供了一种强大且灵活的多环境构建解决方案,使得项目能在不同环境中无缝地运行,提高了开发效率和产品质量。

    Maven下实现多种环境下的资源配置管理

    本篇将详细讲解如何在Maven下实现多种环境下的资源配置管理,帮助开发者更高效地管理项目。 1. **Maven profiles**: Maven的profile机制是实现环境切换的关键。Profile允许我们在一个项目中定义多个配置,每个...

    maven利用Profile构建不同环境的部署包

    总结来说,Maven的Profile功能是实现多环境构建的关键,通过它我们可以方便地管理不同环境的配置,构建出适应各种环境的Java应用部署包。同时,配合标准的目录结构(如WEB-INF和META-INF),我们可以更好地组织和...

    maven多环境配置打包

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

    maven多环境部署pom文件实例

    4. **使用Maven的 filtering 和 filtering-profiles**:结合Profile和资源过滤,可以在不同环境下替换特定的文本内容。例如,替换数据库连接字符串。 5. **使用maven-antrun-plugin**:Maven的AntRun插件允许你在...

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

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

    springboot通过@Profile注解配置不同环境

    总结来说,通过`@Profile`注解和Maven的资源过滤,我们可以轻松地管理Spring Boot应用在不同环境中的配置。这使得我们能够在开发、测试和生产环境之间切换,而无需对代码进行大量修改,极大地提高了开发效率和部署...

    不同环境下的资源文件目录编译

    这篇博文的标题“不同环境下的资源文件目录编译”显然关注的是如何根据开发、测试、生产等不同环境来管理和编译资源文件。让我们深入探讨这个话题。 首先,资源文件通常包含配置文件、图片、音频、视频等非代码元素...

    maven笔记

    7. **多环境配置**:通过profiles配合filtering功能,实现不同环境下的资源配置差异化。 8. **部署策略**:Maven支持发布到私有或公共仓库,如`mvn deploy`。 ### 结论 Maven作为Java开发的强力工具,简化了项目...

    Maven实战.docx

    - **解决方案**: 检查 Maven 的安装路径和版本,确认是否正确配置了 Maven 的环境变量。 #### 五、示例代码解读 - **POM 文件配置**: ```xml &lt;finalName&gt;auto-search-web &lt;groupId&gt;org.eclipse.m2e ...

    springboot 多环境配置 yml文件版的实现方法

    SpringBoot 多环境配置是指在不同的环境中(如开发环境、测试环境、生产环境等),使用不同配置文件来管理应用程序的配置。这种配置方式可以使得应用程序的配置更加灵活和可靠。在本文中,我们将介绍使用 YML 文件...

    SpringBoot开发环境、测试环境、部署环境切换.pdf

    为了方便地在这些环境中切换配置,避免频繁手动修改配置文件,SpringBoot结合Maven的`&lt;profiles&gt;`标签提供了一种有效的管理方式。 1. **配置文件的组织** 在SpringBoot项目中,可以为每个环境创建对应的配置文件,...

    基于springboot+mybatisplus框架

    - 使用SpringBoot的Profile特性,根据环境(如开发、测试、生产)加载不同的配置。 - 利用MyBatisPlus的注解和Lambda表达式,减少代码冗余。 - 对数据库操作进行事务管理,确保数据一致性。 - 编写单元测试,...

Global site tag (gtag.js) - Google Analytics