Java项目初始化Maven结构需通过标准目录约定与pom.xml配置实现可构建、可依赖、可协作;推荐用mvn archetype:generate命令生成骨架,再按规范调整目录职责与pom关键配置。

Java项目初始化Maven结构,核心是通过标准目录约定 + pom.xml 配置实现工程可构建、可依赖、可协作。不必手动创建所有文件夹,用工具生成再微调更高效、更规范。
用命令行快速生成标准Maven骨架
Maven内置的archetype插件能一键生成符合官方目录规范的空项目:
- 执行命令:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false - 生成后自动包含:
src/main/java(源码)、src/main/resources(配置文件)、src/test/java(测试代码)、src/test/resources(测试配置) -
pom.xml已预设基础坐标、Java版本(默认1.8,建议手动改为11或17)、JUnit依赖
关键目录作用与常见误用点
理解每个目录的真实职责,避免“看着像Maven”但实际破坏约定:
-
src/main/java:仅放编译期需要的Java类,不含配置类或XML映射文件(后者应归resources) -
src/main/resources:放application.properties、logback.xml、SQL脚本等非Java资源;不要放.java文件 -
src/test/java:只放JUnit/TestNG测试类;Spring Boot测试需加@SpringBootTest注解,且依赖要声明为scope=test -
target/是Maven自动生成的输出目录(class文件、jar包),禁止手动修改或提交到Git
pom.xml必须明确的关键配置
一个可用的pom.xml至少需覆盖三方面:
立即学习“Java免费学习笔记(深入)”;
-
基础坐标:确保
groupId(公司/组织域名倒写)、artifactId(项目名)、version(如1.0.0-SNAPSHOT)完整准确 -
Java版本控制:在
中设java.version,并在maven-compiler-plugin中指定source和target -
依赖范围清晰:运行时必需的(如Spring Web)用
compile(默认);仅测试用的(如Mockito)显式标scope=test
IDE导入后需检查的细节
IntelliJ或Eclipse识别Maven项目后,仍需人工确认:
- 项目SDK是否匹配
pom.xml中声明的Java版本(例如选了JDK 17但pom写的是11,会编译失败) - Resources目录是否被标记为“Resources Root”(IntelliJ右键→Mark as→Resources Root;Eclipse需在Build Path里确认)
- Maven Profiles是否激活正确(如
dev环境需确保-Pdev生效,否则application-dev.yml可能不加载)










