Maven使用笔记(三)Maven的工作原理

简介:

概述

Maven是一个项目管理工具,他包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义生命周期阶段中插件目标的逻辑。

Maven是基于约定优于配置的思想来管理代码目录的。Maven的核心插件使用了一组通用的约定,以用来编译源代码,打包可分发的构件,生成Web站点,以及许多其他过程。约定的好处是使事情简单化。

默认约定

默认源码:${basedir}/src/main/java

资源文件:${basedir}/src/main/resources

测试代码:${basedir}/src/main/test

JAR文件存放在:${basedir}/target/classes

 

Maven有很多优点包括依赖管理和通过插件重用一般的构建逻辑,但是它成功的最核心的原因是他定义了构建软件的一般接口。

  Maven的核心其实不做什么实际的的事情,除了解析一些XMl文档,管理生命周期与插件之外,他什么都不懂。Maven被设计成将主要的职责委派给一组Maven插件,这些常见可以影响Maven生命周期,提供对目标的访问。绝大多数Maven的动作发生于Maven插件的目标,如编译源代码,打包二进制代码,发布站点和其他构建任务。

 Maven维护了一个项目的模型。这个基于每一个项目定义的模型实现了一下特征:

·依赖管理

由于项目是根据一个包含组织标识符,构建标识符和版本的唯一的坐标定义的。项目间可以使用这些坐标来声明依赖。

·远程仓库

可以通过定义在项目对象模型(POM)中的坐标来创建Maven构建的仓库。

·全局性构建逻辑重用

Maven插件被编写成和项目模型对象(POM)一起工作,他们没有被设计成操作某一个已知位置的特定文件(此点可与Ant对比)。一切都被抽象到模型中,插件配置和自定义行为都在模型中进行。

·工具可移植性/集成

Maven标准化了项目模型对象(POM)模式,可使用IDE很容易生成有模型生成项目文件。

·便于搜索和过滤构建

Maven的原理

Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。如图1。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小,在执行maven任务时,才会自动下载需要的插件。

Maven有一个官方的仓库,是一个微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。


目录
相关文章
|
Java Maven
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
3258 0
【笔记04】下载、配置 MAVEN(配置 MAVEN 本地仓库)(MAVEN 的 setting.xml)
|
Kubernetes NoSQL Java
Maven 打包笔记
Maven 打包笔记
|
IDE Java 测试技术
史上最详细的Maven使用笔记(建议收藏)
Maven 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 温馨提示:如果需要详细的线下笔记,PDF文件方便保存,可以关注公众号“程序员小王”回复“maven”领取PDF版本笔记
388 0
史上最详细的Maven使用笔记(建议收藏)
|
JSON Java 数据库连接
SSM+Maven高级+MybatisPlus万字笔记
SSM+Maven高级+MybatisPlus万字笔记
149 0
SSM+Maven高级+MybatisPlus万字笔记
|
XML 前端开发 Java
maven的ssm整合笔记
ssm整合笔记 一:ssm描述 二:整合ssm 2.1搭建maven工程(pom.xml导入相关的包) maven中央仓库:[maven中央仓库](https://mvnrepository.com/) 具体配置说明 2.2配置mybatis-config.xml文件(mybatis) 创建jdbc的资源文件 具体配置说明 2.3配置applicationContext.xm (Spring) 具体配置说明 2.4配置springMVC环境DispatcherServlet 详细配置 2.5配置web.xml环境 配置内容如下 总结
145 0
maven的ssm整合笔记
|
Java Maven
使用Maven命令行运行Java main方法| Java Debug 笔记
使用Maven命令行运行Java main方法| Java Debug 笔记
491 0
|
IDE Java 测试技术
史上最详细的Maven使用笔记(建议收藏)
史上最详细的Maven使用笔记(建议收藏)
史上最详细的Maven使用笔记(建议收藏)
|
敏捷开发 Java 应用服务中间件
Java笔记:Maven软件依赖管理
Java笔记:Maven软件依赖管理
157 0
|
弹性计算 Java Maven
开发笔记20 | 多模块 Maven 工程部署
开发笔记20 | 多模块工程部署
12756 0
|
Java Maven