Maven 是 Java 生态中最主流的依赖管理与构建工具,它通过 pom.xml(Project Object Model) 来统一管理项目的依赖、构建和插件。下面从核心机制到实际使用给你系统讲一遍。
约定优于配置(Convention over Configuration)
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.30</version>
</dependency>
</dependencies>
| 元素 | 含义 |
|---|---|
| groupId | 组织/公司(如 com.google.guava) |
| artifactId | 项目/模块名 |
| version | 版本号 |
~/.m2/repository<repositories>
<repository>
<id>nexus</id>
<url>http://localhost:8081/repository/maven-public/</url>
</repository>
</repositories>
控制依赖在哪些阶段生效:
| scope | 说明 |
|---|---|
| compile | 默认,编译+运行 |
| provided | 编译需要,运行由容器提供(如 servlet-api) |
| runtime | 运行需要,编译不需要 |
| test | 仅测试使用(JUnit) |
| system | 本地 jar(不推荐) |
<scope>test</scope>
A → B → C
查看依赖树:
mvn dependency:tree
A → B → C(1.0)
A → C(2.0) ✅ 使用 2.0
<dependency>C(1.0)</dependency>
<dependency>C(2.0)</dependency>
<exclusions>
<exclusion>
<groupId>xxx</groupId>
<artifactId>yyy</artifactId>
</exclusion>
</exclusions>
<dependencyManagement><dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>5.3.30</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
子模块中可省略 version。
mvn clean # 清理
mvn compile # 编译
mvn test # 测试
mvn package # 打包
mvn install # 安装到本地仓库
mvn dependency:tree # 查看依赖树
✅ 使用 私服(Nexus / Artifactory)
✅ 使用 BOM 统一管理版本
✅ 定期 mvn dependency:analyze
✅ 避免使用 system scope
✅ 锁定关键依赖版本
如果你愿意,我也可以:
你现在是刚学 Maven,还是在实际项目中遇到问题?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。