Maven项目管理核心是初始化结构、声明依赖、执行生命周期;用mvn archetype:generate生成标准结构,依赖需正确配置scope和排除冲突,clean compile只编译,package默认运行测试并打包,本地仓库污染需手动清理对应目录。
Java项目用Maven管理,核心就三件事:初始化结构、声明依赖、执行生命周期。没配好 pom.xml 或搞错 mvn 命令阶段,编译失败或类找不到都是常态。
怎么快速生成标准Maven项目结构
别手写目录。用 mvn archetype:generate 最稳,推荐指定官方骨架避免兼容问题:
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false- 生成后检查
src/main/java和src/test/java是否存在——缺一不可,否则mvn compile会跳过源码 - IDE(如IntelliJ)导入时选 “Import project from external model → Maven”,别直接打开文件夹,否则不会识别
target目录和依赖
依赖声明写错的典型表现和修正点
常见现象是 ClassNotFoundException 或编译报红,但 mvn dependency:tree 显示依赖已下载——大概率是 scope 或版本冲突导致的:
-
scope写成test却在 main 里用了 JUnit 的断言类?删掉该test行,或改用compile(默认值,可省略) - 多个依赖间接引入不同版本的
slf4j-api?运行mvn dependency:tree -Dverbose找出冲突路径,再用排除低版本 - 依赖没生效?确认
在根节点下,不是嵌套在或里
mvn clean compile 和 mvn package 的实际差异
这两个命令看似只是多打包一步,但中间环节差很多,尤其影响调试和部署: