You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pom.xml中读取properties配置文件的属性值

实现方案

有两种常用的稳定实现方式,可根据自身需求选择:


方法1:使用properties-maven-plugin读取配置(仅读取属性首选)

无需修改原有资源处理逻辑,专门用于加载properties属性到pom上下文中:

  • 在pom.xml的build -> plugins节点下添加插件配置:
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
        <execution>
            <!-- 构建初始化阶段就加载属性,保证后续所有环节都能读取到 -->
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <!-- 替换为你自己的properties文件路径,多文件可新增多个file节点 -->
                    <file>src/main/resources/application.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

配置完成后,properties文件中定义的属性例如app.name=demo,就可以直接在pom的任意位置通过${app.name}引用。


方法2:使用Maven原生过滤功能(需要双向变量替换首选)

如果同时需要把pom中的属性注入到properties文件里,可以用Maven自带的filter能力,无需引入第三方插件:

  • 在pom.xml的build节点下添加如下配置:
<build>
    <!-- 指定要读取的properties文件作为过滤源 -->
    <filters>
        <filter>src/main/resources/application.properties</filter>
    </filters>
    <!-- 开启资源过滤,保证属性可以被正常解析替换 -->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

该方式不仅支持pom读取properties里的属性,还支持在properties文件中引用pom属性,比如在properties里写app.version=${project.version},构建时会自动替换为pom中定义的项目版本号。


注意:如果properties文件中包含$、\等特殊字符,需要提前做转义处理,避免Maven解析属性时报错。如果需要支持多环境切换,可搭配Maven Profile配置,在不同部署环境下指定加载不同的properties文件即可。

内容的提问来源于stack exchange,提问作者Jasmine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:15:03