`

Maven <Profiles>定义不同环境的参数变量

 
阅读更多
应用场景

我们在开发的时候会遇到需要区分正式环境、测试环境、开发环境使用不同的参数,如数据库的用户名及密码等。这时可以用Spring 的PropertyPlaceholderConfigurer 来配置受环境影响的变量,这种使用多个配置文件的方式,但是我觉得这样不够灵活,所以就使用了maven的profiles 来实现,在打包的时候maven就会根据指定的配置参数写入文件。
配置方式分为两种,一种是全局配置即在.m2/conf/setting.xml 里面配置实现全局,一种是在项目中的pom.xml配置,这里我没有用到全局方式,就不详细介绍,我们主要介绍项目中配置方式。
实现

1.pom.xml配置

    <build>
        <!-- 配置使用变量的配置文件-->
        <filters>
            <filter>src/main/resources/application.properties</filter>
        </filters>
        <resources>
            <!--配置文件路径-->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <pom.env>dev</pom.env>
                <pom.ver>1.2.4</pom.ver>
            </properties>
            <activation>
                <!--默认生效的配置组-->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <pom.env>dev</pom.env>
                <pom.ver>1.3.3</pom.ver>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <pom.env>pro</pom.env>
                <pom.ver>1.3.5</pom.ver>
            </properties>
        </profile>
    </profiles>


2.application.properties配置

env=${pom.env}
ver=${pom.ver}


3.执行

执行的时候加上-P ${profile.id},使用默认的可以不加,我用的IDE自带的工具选择生效参数组,在Profiles里面选择参数组

mvn clean install -P local


4.总结

步骤如下:

pom.xml中添加、参数
EL表达式在配置文件中调用变量
执行是-P 制定参数

注意: 必须有下面的resources配置profiles才有效的
<build>
        <!-- 配置使用变量的配置文件-->
        <filters>
            <filter>src/main/resources/application.properties</filter>
        </filters>
        <resources>
            <!--配置文件路径-->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
分享到:
评论

相关推荐

    Maven build之pom.xml文件中的Build配置

    此外,Maven还支持ProfileBuild的配置,它允许根据不同的环境变量、操作系统等条件来使用不同的构建设置。ProfileBuild是在&lt;profiles&gt;标签内定义的,它可以覆盖或扩展ProjectBuild中的配置。 总之,Maven通过pom....

    使用maven Profile实现多环境构建

    Profile通常定义在`pom.xml`文件的`&lt;profiles&gt;`标签下。 为了实现多环境构建,我们可以在`pom.xml`中创建多个Profile,每个Profile对应一个环境。例如,我们可以有名为`dev`(开发)、`test`(测试)和`prod`(生产...

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

    要在POM.xml文件中定义Profile,我们可以在`&lt;project&gt;`标签下添加`&lt;profiles&gt;`标签,然后在其中定义具体的Profile。例如,我们可以为开发、测试和生产环境创建三个Profile: ```xml &lt;profiles&gt; &lt;profile&gt; &lt;id&gt;dev...

    maven 3.8.1版本私服配置版本

    在`&lt;profiles&gt;`标签内,定义一个profile,包括对发布到私服的配置: ```xml &lt;profiles&gt; &lt;profile&gt; &lt;id&gt;nexus-release&lt;/id&gt; &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;my-nexus-release&lt;/id&gt; &lt;url&gt;...

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

    在Maven项目中,我们常常需要针对不同的部署环境(如开发、测试、生产等)使用不同的配置文件。本篇将详细讲解如何在Maven下实现多种环境下的资源配置管理,帮助开发者更高效地管理项目。 1. **Maven profiles**: ...

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

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

    maven3.6.2资源包

    ** Maven 3.6.2 资源包详解与设置指南 ** Maven 是一个强大的 Java 项目管理工具,它极大地简化了构建、依赖...正确理解和配置 `settings.xml` 文件,能确保 Maven 以最佳方式工作,满足不同项目和开发环境的需求。

    Maven 本地私服setting.xml文件

    `profiles`元素允许用户定义一组可选的配置,这些配置可以根据环境变量或命令行参数自动激活。例如,你可以定义一个针对生产环境和开发环境的配置: ```xml &lt;profiles&gt; &lt;profile&gt; &lt;id&gt;production&lt;/id&gt; ...

    Javamaven全局配置jdk版本共3页.pdf.z

    打开`settings.xml`,我们可以找到`&lt;profiles&gt;`标签,这里可以定义多个配置环境,每个环境都可以指定不同的JDK版本。 要为Maven配置一个全局的JDK版本,我们需要创建一个新的`&lt;profile&gt;`,然后在其中添加`&lt;build&gt;`...

    使用maven Filtering实现多环境构建

    &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt; &lt;version&gt;3.2.0&lt;/version&gt; &lt;/plugin&gt; &lt;/plugins&gt; ... &lt;/build&gt; ``` 3. **使用占位符**:在资源文件中,我们可以使用`${}`包裹变量名,Maven会自动替换它们。...

    Maven配置文件Maven配置文件

    &lt;profiles&gt;...&lt;/profiles&gt; &lt;servers&gt;...&lt;/servers&gt; &lt;activeProfiles&gt;...&lt;/activeProfiles&gt; &lt;/settings&gt; ``` #### 关键配置项 1. **`localRepository`**:定义Maven本地仓库的路径,用于存储下载的依赖库。默认...

    超详细版图文Maven安装及配置

    - **项目坐标**:在 Maven 项目的核心配置文件 `pom.xml` 中,通过 `&lt;groupId&gt;`, `&lt;artifactId&gt;`, `&lt;version&gt;` 等元素来定义项目的坐标。 - **依赖声明**:使用 `&lt;dependencies&gt;` 元素来声明项目依赖。 ```xml ...

    maven多环境配置打包

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

    Maven课程2

    Maven Profile 机制是为了解决不同环境(如开发环境、测试环境等)下的配置差异问题。Profile 可以包含一组特定于环境的配置参数,比如数据库连接字符串或日志级别。Profile 可以在构建时手动激活,也可以通过环境...

    Maven一些相关的配置

    Maven还允许通过`&lt;profiles&gt;`标签引入外部配置,这些配置可以根据环境变量或操作系统属性被激活。这对于不同环境(如开发、测试和生产)有不同的配置需求非常有用。 ### 8. Elasticsearch与Maven Elasticsearch是...

    maven3基础教程

    - `&lt;localRepository&gt;`标签定义本地仓库路径,将其更改为`&lt;localRepository&gt;E:/maven/maven-3.0.4/repo&lt;/localRepository&gt;`。 - 在`&lt;servers&gt;`标签内添加服务器配置,用于身份验证,例如: ```xml &lt;server&gt; &lt;id...

    Maven环境,仓库配置(图文教程加小案例)

    &lt;localRepository&gt;D:/Maven_Repository&lt;/localRepository&gt; &lt;!-- 本地仓库路径 --&gt; &lt;mirrors&gt; &lt;mirror&gt; &lt;id&gt;my-mirror&lt;/id&gt; &lt;mirrorOf&gt;*&lt;/mirrorOf&gt; &lt;!-- 镜像所有仓库 --&gt; &lt;url&gt;http://myrepo.example.com&lt;/...

    eclipse中使用maven创建项目JDK版本默认是1.5解决方法.docx

    在这个配置中,`&lt;id&gt;`标签定义了profile的标识,`&lt;activation&gt;`部分设置了默认激活此profile的条件,`&lt;jdk&gt;`标签指定了JDK版本。`&lt;properties&gt;`标签内的属性设置了源码和目标代码的编译级别。 接下来,确保Eclipse...

Global site tag (gtag.js) - Google Analytics