maven知识点

Maven 是一个项目管理和构建自动化工具,主要服务于基于 Java 的项目。它利用一个名为 POM的 XML 文件来描述项目的构建过程、依赖关系等信息。以下是一些 Maven 的关键知识点:

1.POM(Project Object Model):

Maven 的核心,定义了项目的构建、报告和依赖等信息。

`<groupId>`:定义了项目组的标识符。

`<artifactId>`:定义了项目的产品或模块的标识符。

`<version>`:定义了项目的版本。

`<dependencies>`:定义了项目依赖的外部库。

  1. 依赖管理:

Maven 可以自动下载项目所需的依赖,并管理这些依赖的版本。

依赖传递性:如果项目 A 依赖项目 B,而项目 B 又依赖项目 C,Maven 会自动解析这种依赖关系。

3.构建生命周期(Build Lifecycle):

Maven 定义了一系列的阶段,每个阶段可以执行特定的插件和目标。

常见的生命周期阶段包括:`clean`, `compile`, `test`, `package`, `verify`, `install`, `deploy`。

4.插件(Plugins):

Maven 通过插件来执行具体的任务,如编译、测试、打包等。

插件可以绑定到生命周期的特定阶段上。

5.继承和聚合:

继承允许一个 POM 继承另一个 POM 的配置,实现配置的复用。

聚合用于构建多模块项目,可以同时构建多个子模块。

  1. 仓库(Repositories):

Maven 从远程仓库下载依赖,也可以从本地仓库中读取。

常见的远程仓库包括 Maven Central、JCenter 等。

  1. 依赖范围(Dependency Scope):

定义了依赖在项目中的可用性,常见的依赖范围有 `compile`, `provided`, `runtime`, `test`, `system`。

  1. 快照和发布版本(Snapshots and Releases):

快照版本用于开发中的项目,每次构建都会生成一个新的版本号。

发布版本是稳定的版本,用于生产环境。

  1. Maven 命令:

`mvn clean`:清理项目。

`mvn compile`:编译项目源代码。

`mvn test`:运行测试。

'mvn package`:打包编译后的代码。

`mvn install`:将包安装到本地仓库。

`mvn deploy`:将包部署到远程仓库。

  1. Maven 配置文件:

`settings.xml`:全局配置文件,位于 Maven 安装目录下的 `conf` 目录。

`pom.xml`:项目配置文件,位于项目的根目录。

  1. Maven 镜像(Mirrors):

可以配置 Maven 来使用特定的镜像,以加速依赖的下载。

12.Maven 属性(Properties):

可以在 POM 中定义属性,用于在构建过程中动态替换值。

这些是 Maven 的一些基础和核心概念,掌握这些可以更有效地使用 Maven 来管理 Java 项目。

相关推荐
2601_9621066413 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice13 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
2601_9621066414 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
杨凯凡14 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard15 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android15 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤15 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
aiks_yuan18 小时前
Java CPU 100% 怎么排查:JDK 11 起 jstack 自带线程 CPU 时间,不用再 top -H 换算十六进制(JDK 8、11、17 实测)
java
Flynn Liang19 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang19 小时前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j