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

编译配置与 Java 版本

maven-compiler-plugin 配置 Java 编译版本和编译参数。

Java 版本配置

属性配置

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

插件配置

XML
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>17</source>
        <target>17</target>
      </configuration>
    </plugin>
  </plugins>
</build>

source vs target

参数说明
source源码版本
target字节码版本

编译参数配置

compilerArgs

XML
<configuration>
  <compilerArgs>
    <arg>-parameters</arg>           <!-- 保留参数名 -->
    <arg>-Xlint:unchecked</arg>      <!-- 未检查警告 -->
    <arg>-Xlint:deprecation</arg>    <!-- 过期 API 警告 -->
  </compilerArgs>
</configuration>

常用参数

参数说明
-parameters保留方法参数名
-Xlint:all所有警告
-Xlint:unchecked未检查类型转换警告
-Xlint:deprecation过期 API 警告

编译警告控制

显示警告

XML
<configuration>
  <showWarnings>true</showWarnings>
  <showDeprecation>true</showDeprecation>
</configuration>

警告为错误

XML
<configuration>
  <failOnWarning>true</failOnWarning>
</configuration>

编码配置

XML
<configuration>
  <encoding>UTF-8</encoding>
</configuration>

注解处理器配置

启用注解处理

XML
<configuration>
  <annotationProcessorPaths>
    <path>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
    </path>
  </annotationProcessorPaths>
</configuration>

多处理器

XML
<annotationProcessorPaths>
  <path>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
  </path>
  <path>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.5.3</version>
  </path>
</annotationProcessorPaths>

禁用注解处理

XML
<configuration>
  <proc>none</proc>  <!-- 禁用 -->
</configuration>

增量编译

XML
<configuration>
  <useIncrementalCompilation>true</useIncrementalCompilation>
</configuration>

多版本 JAR

配置多版本

XML
<configuration>
  <source>11</source>
  <target>11</target>
  <multiReleaseOutput>true</multiReleaseOutput>
</configuration>

编译优化

JVM 参数

Bash
export MAVEN_OPTS="-Xmx2g"
mvn compile

并行编译

XML
<configuration>
  <fork>true</fork>
  <memInitial>512m</memInitial>
  <maxMem>1024m</maxMem>
</configuration>

Java 版本矩阵

Maven 版本支持 Java 版本
3.8.xJava 8 - 17
3.9.xJava 8 - 21

Spring Boot 配置

父 POM 继承

XML
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.7.0</version>
</parent>

<properties>
  <java.version>17</java.version>
</properties>

release 参数

替代 source/target

XML
<configuration>
  <release>17</release>  <!-- 同时设置 source 和 target -->
</configuration>

Java 9+ 推荐

release 参数比 source+target 更精确。

编译测试代码

XML
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <executions>
    <execution>
      <id>compile-test</id>
      <phase>test-compile</phase>
      <configuration>
        <source>17</source>
        <target>17</target>
      </configuration>
    </execution>
  </executions>
</plugin>

要点总结

  • maven.compiler.source/target 配置 Java 版本
  • source 源码版本,target 字节码版本
  • release 替代 source+target(Java 9+)
  • compilerArgs 配置编译参数
  • annotationProcessorPaths 配置注解处理器
  • encoding 配置源码编码
  • Spring Boot 使用 java.version 属性
  • showWarnings 显示编译警告

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

← 上一篇 测试配置与分组执行
下一篇 → 资源过滤与变量替换
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

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

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