compile 是 Maven default 生命周期中的编译阶段,负责将 src/main/java 下的 Java 源码编译为 .class 文件并输出至 target/classes 目录。

在 Maven 中,compile 命令本身不是独立可执行的命令,而是 Maven 生命周期中的一个阶段。要将 Java 源代码编译为 .class 字节码文件,需运行 mvn compile,Maven 会自动执行 compiler:compile 插件任务。
确认项目结构符合 Maven 标准
Maven 默认只编译 src/main/java 下的源码。确保你的 Java 文件放在该目录下(如 src/main/java/com/example/App.java),否则 mvn compile 不会处理它们。
- 主代码路径必须是
src/main/java - 资源文件(如配置文件)放在
src/main/resources,不会被编译但会被复制到输出目录 - 测试代码应放在
src/test/java,需用mvn test-compile单独编译
执行编译命令
在项目根目录(含 pom.xml 的目录)下运行:
mvn compile
成功后,字节码文件会生成在 target/classes/ 目录中,路径与包结构一致(如 com/example/App.class)。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
立即学习“Java免费学习笔记(深入)”;
- 首次运行会自动下载所需插件(如
maven-compiler-plugin)和依赖 - 若报错 “Source option 5 is no longer supported”,说明 JDK 版本与编译器配置不匹配,需在
pom.xml中声明 Java 版本
指定 Java 编译版本(推荐配置)
在 pom.xml 的 <properties> 或 <pluginManagement> 中设置,避免默认使用过低版本:
<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties>
- 这会告诉 Maven 使用 JDK 17 语法并生成兼容 JDK 17 的字节码
- 若本地 JDK 是 21,但项目需兼容 17,
target应设为 17 - 编码设置防止中文字符编译出错
常见问题排查
如果 mvn compile 没有生成 class 文件或报错:
- 检查
pom.xml是否存在,且格式正确(无 XML 错误) - 确认
JAVA_HOME指向正确的 JDK(非 JRE),且版本 ≥ 配置的source版本 - 运行
mvn clean compile清理旧输出再重试 - 查看错误信息是否提示缺失依赖——Maven 编译时需要所有
compile范围的依赖在本地仓库中

















