首页/ 学科题库/ maven/ 构建配置基础
maven 实战教程

构建配置基础

2026-05-23 约 6 分钟 juanwangdev

构建配置基础

build 元素配置项目构建行为,包括目录、资源、插件等。

build 基础结构

XML
<build>
  <!-- 目录配置 -->
  <sourceDirectory>src/main/java</sourceDirectory>
  <testSourceDirectory>src/test/java</testSourceDirectory>
  <outputDirectory>target/classes</outputDirectory>
  <testOutputDirectory>target/test-classes</testOutputDirectory>

  <!-- 最终产物名称 -->
  <finalName>${project.artifactId}-${project.version}</finalName>

  <!-- 资源配置 -->
  <resources>
    <resource>
      <directory>src/main/resources</directory>
    </resource>
  </resources>

  <!-- 插件配置 -->
  <plugins>
    ...
  </plugins>
</build>

目录配置

默认目录(约定)

配置项默认值
sourceDirectorysrc/main/java
testSourceDirectorysrc/test/java
outputDirectorytarget/classes
testOutputDirectorytarget/test-classes
directorytarget

自定义目录示例

XML
<build>
  <sourceDirectory>src/java</sourceDirectory>
  <testSourceDirectory>test/java</testSourceDirectory>
  <outputDirectory>build/classes</outputDirectory>
</build>

不推荐修改默认目录,遵循约定更便于维护。

资源过滤

启用资源过滤

XML
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>  <!-- 启用变量替换 -->
    </resource>
  </resources>
</build>

资源文件中使用变量

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

定义属性

XML
<properties>
  <app.env>dev</app.env>
</properties>

资源文件中使用:

properties
environment=${app.env}

过滤示例结果

XML
原始:app.name=${project.name}
过滤后:app.name=My Application

排除/包含文件

XML
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <excludes>
        <exclude>**/*.jpg</exclude>
        <exclude>**/*.png</exclude>
      </excludes>
    </resource>
  </resources>
</build>

测试资源配置

XML
<build>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
      <filtering>true</filtering>
    </testResource>
  </testResources>
</build>

finalName 配置

XML
<build>
  <!-- 自定义最终产物名称 -->
  <finalName>my-app-production</finalName>
</build>

<!-- 输出:target/my-app-production.jar -->

默认 build 配置

超级 POM 提供默认配置:

text
<build>
  <directory>target</directory>
  <outputDirectory>target/classes</outputDirectory>
  <finalName>${artifactId}-${version}</finalName>
</build>

要点总结

  • build 配置构建目录、资源、插件
  • 默认目录遵循约定,不建议修改
  • filtering=true 启用资源变量替换
  • includes/excludes 控制资源文件范围
  • finalName 自定义最终产物名称
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 项目信息配置 下一篇 → 继承与聚合