maven的诞生
Maven是一个积累知识的 Yiddish(意为“知识的积累者”)词汇,起初它作为简化 Jakarta Turbine 项目中的构建过程的尝试而产生。该项目包含多个子项目,每个项目都有自己独立的 Ant 构建文件,并且它们之间略有不同。JAR 文件被检入到 CVS 版本控制系统中。我们希望有一种标准的方式来构建这些项目,明确定义项目的内容,轻松发布项目信息,并能够在多个项目之间共享 JAR 文件。就是maven诞生的环境。
也就是说Maven 是以简化构建过程为目的而创建的工具,通过标准化构建流程、定义项目结构、方便地发布项目信息以及共享依赖项等特性,帮助Java开发人员更高效地进行项目开发和管理。
maven的主要目标是什么
Maven 的主要目标是让开发人员在最短的时间内全面了解开发工作的状态。为了实现这个目标,Maven 处理了以下几个方面的问题:
Maven 主要旨在提供一个统一的项目构建和管理平台,帮助开发人员通过简单、标准化的方式来管理 Java 项目,并且提高开发效率和代码质量。
在idea中安装maven
具体的安装,可以按照这个文章使用,IDEA集成Maven环境
在idea中使用maven
在 IntelliJ IDEA 中使用 Maven 非常方便。以下是在 IntelliJ IDEA 中使用 Maven 的基本步骤:
pom.xml
文件。引入依赖
当我们新建了一个maven项目后我们的项目里就会有一个xml文件,在这里我们可以引入各种各样的依赖。
引入的方式是使用标签
例如
4.0.0
org.example
untitled
1.0-SNAPSHOT
11
11
com.example
example-library
1.0.0
在上述示例中,我们在 标签内添加了一个示例依赖项
com.example:example-library:1.0.0
。您可以将其替换为您实际需要的依赖项的坐标。
引入依赖的主要优点包括:
总的来说,引入依赖可以提高开发效率、降低开发成本,并帮助您构建高质量、安全可靠的应用程序。然而,需要注意的是,选择合适的依赖和版本管理是至关重要的,以确保依赖的质量和与项目的兼容性。
我们可以在maven里面看到引入的依赖,例如:
什么是生命周期
Clean Lifecycle(清理生命周期)是 Maven 构建生命周期中的一个阶段,用于在进行实际构建之前执行一些清理工作。它包含三个阶段:
clean
阶段之前运行。它可以用于执行在清理之前需要完成的任务,比如删除临时文件或备份旧文件等。这个阶段通常用于清理以前构建留下的任何垃圾或不必要的文件。pre-clean
阶段后立即运行。这个阶段的目标是将构建过程产生的所有文件删除,以保持项目目录的干净状态。它会删除先前构建生成的目标文件、编译的类文件和其他生成的文件。clean
阶段之后立即运行。它可以用于执行在清理之后需要完成的任务,比如重新生成缓存文件或清理临时目录等。这个阶段通常用于清理或恢复清理操作可能遗漏的其他资源。Default Lifecycle(默认生命周期)是 Maven 构建生命周期中的核心部分,涵盖了编译、测试、打包、部署等一系列常用的构建任务。下面是其中一些比较重要和常用的阶段:
最下面的dependencies可以直观的展示依赖之间的关系
工程的依赖继承
Maven工程之间,A 工程继承 B 工程
- B 工程:父工程
- A 工程:子工程
本质上是 A 工程的 pom.xml 中的配置继承了 B 工程中 pom.xml 的配置
在父工程中统一管理项目中的依赖信息,具体来说是管理依赖信息的版本。
它的背景是:
- 对一个比较大型的项目进行了模块拆分。
- 一个 project 下面,创建了很多个 module。
- 每一个 module 都需要配置自己的依赖信息。
它背后的需求是:
- 在每一个 module 中各自维护各自的依赖信息很容易发生出入,不易统一管理。
- 使用同一个框架内的不同 jar 包,它们应该是同一个版本,所以整个项目中使用的框架版本需要统一。
- 使用框架时所需要的 jar 包组合(或者说依赖信息组合)需要经过长期摸索和反复调试,最终确定一个可用组合。这个耗费很大精力总结出来的方案不应该在新的项目中重新摸索。
通过在父工程中为整个项目维护依赖信息的组合既保证了整个项目使用规范、准确的 jar 包;又能够将以往的经验沉淀下来,节约时间和精力。
如果您想在 Maven 的多模块工程中使用依赖继承,可以按照以下步骤进行操作:
在父模块的 pom.xml
文件中定义需要共享的依赖。例如,添加以下依赖配置:
注意:只有打包方式为 pom 的 Maven 工程能够管理其他 Maven 工程。打包方式为 pom 的 Maven 工程中不写业务代码,它是专门管理其他 Maven 工程的工程,所以可以将生成的 src 目录删除。
pom
com.example
library1
1.0.0
com.example
library2
2.0.0
2.创建子模块,在子模块的目录下创建一个新的目录,并在该目录下初始化一个新的 Maven 项目。这可以通过执行以下命令完成:
3.在子模块的 pom.xml
文件中添加 元素,指定父模块。例如:
com.example
parent-project
1.0.0
4.在子模块的 pom.xml
文件中,可以继续添加其他子模块特有的依赖。例如:
com.example
submodule-specific-library
1.0.0
重复步骤2-4,为其他子模块也进行相应的设置。
通过以上步骤,父模块的依赖配置将被继承到各个子模块中,子模块只需要关注自身特有的依赖配置。当执行 Maven 构建命令时,Maven 将自动处理依赖下载和管理。