全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 5 分钟 ✍️ juanwangdev

属性与变量替换

properties 元素定义自定义属性,在配置中引用实现变量替换。

属性定义

基本语法

XML
<properties>
  <java.version>17</java.version>
  <spring.version>5.3.20</spring.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

引用属性

XML
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring.version}</version>
</dependency>

内置属性

项目属性

属性说明示例值
${project.groupId}项目 groupIdcom.example
${project.artifactId}项目 artifactIdmy-app
${project.version}项目版本1.0.0
${project.name}项目名称My Application
${project.basedir}项目根目录/home/user/my-app
${project.build.directory}构建目录target
${project.build.sourceDirectory}源码目录src/main/java

Maven 属性

属性说明
${maven.version}Maven 版本
${maven.build.timestamp}构建时间戳

环境变量属性

XML
<!-- 引用系统环境变量 -->
${env.JAVA_HOME}
${env.PATH}
${env.MAVEN_HOME}

示例

XML
<properties>
  <java.home>${env.JAVA_HOME}</java.home>
</properties>

系统属性

XML
<!-- 引用 Java 系统属性 -->
${java.version}
${java.home}
${user.home}
${os.name}

自定义属性使用场景

统一版本管理

XML
<properties>
  <spring.version>5.3.20</spring.version>
  <junit.version>4.13.2</junit.version>
</properties>

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
  </dependency>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${junit.version}</version>
    <scope>test</scope>
  </dependency>
</dependencies>

编译器配置

XML
<properties>
  <maven.compiler.source>17</maven.compiler.source>
  <maven.compiler.target>17</maven.compiler.target>
</properties>

<!-- 或在 build 中配置 -->
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>${maven.compiler.source}</source>
        <target>${maven.compiler.target}</target>
      </configuration>
    </plugin>
  </plugins>
</build>

资源过滤

启用过滤

XML
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

资源文件使用属性

properties
# application.properties
app.version=${project.version}
app.name=${project.name}
build.time=${maven.build.timestamp}
java.home=${java.home}

构建后结果

XML
app.version=1.0.0
app.name=My Application
build.time=20260523-140530
java.home=/usr/lib/jvm/java-17

Profile 属性

text
<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <db.url>jdbc:mysql://localhost:3306/dev</db.url>
    </properties>
  </profile>
  <profile>
    <id>prod</id>
    <properties>
      <db.url>jdbc:mysql://prod-server:3306/prod</db.url>
    </properties>
  </profile>
</profiles>

要点总结

  • properties 定义自定义属性,${property} 引用
  • 内置属性:project.、maven.
  • 环境属性:${env.XXX}
  • 系统属性:${java.version}、${user.home}
  • filtering=true 启用资源文件变量替换
  • 统一版本管理:定义一个属性,多处引用

📝 发现内容有误?点击此处直接编辑

← 上一篇 pom.xml 基础结构
下一篇 → 构建配置基础
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库