文档章节

maven概述及原理

万建宁
 万建宁
发布于 2019/09/18 23:07
字数 959
阅读 50
收藏 1

1.Maven概述及原理

1.1.概述

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很容易生成有模型生成项目文件。

·便于搜索和过滤构建

1.2.原理

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

图1

Maven有一个官方的仓库,是一个微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。另外由于插件的易开发性,现在有了非常多的可供选择的插件,如与eclipse结合的插件,与Test相关的插件。

© 著作权归作者所有

万建宁
粉丝 3
博文 107
码字总数 192091
作品 0
西安
程序员
私信 提问
加载中

评论(0)

最全java学习路线图 java学习指南

JavaEE学习路线图 准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE。 ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本的语...

耳东陈_f1e5
2018/01/14
0
0
Scala笔记整理(九):Actor和AKKA

[TOC] 概述 Scala的Actor有点类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同。Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用...

xpleaf
2018/04/24
0
0
[Maven-不忘初心,方得始终] Maven-项目管理与构建

Maven课程概述: Maven快速入门 Maven核心知识 Maven建立web项目 1. Maven快速入门 Maven介绍及环境搭建: Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档...

LSantorini
2016/02/14
162
0
maven不能下载依赖的jar包?

问题概述 最近把本地一个项目移到新的开发环境中,但是maven总是有几个jar包不能下载下来。 如何解决maven无法下载jar包的问题呢?

季_苗
2018/03/05
8.2K
5
java开发面试准备提纲

第一部分:java基础 JVM和GC:java虚拟机内存分配,类加载机制(双亲委派模型,Bootstrap Classloader, Extension ClassLoader, Application ClassLoader),Eden space,from space,to sp...

isam
2016/03/30
106
0

没有更多内容

加载失败,请刷新页面

加载更多

Eclipse IDE for Java - 全黑主题

有没有办法让Eclipse彻底变成黑暗的IDE? 这是我要问的图片 : 我不介意做一个小时的工作来做这样的事情:D 编辑: 正如Konstantin Komissarchik所说,我不得不修改我的操作系统颜色。 这可以...

javail
26分钟前
50
0
mysql基本语法

运算符 = --------------------表示等于 <> --------------------表示不等于 between ... and ... ---显示在某一区间的值(含头尾) like ------------------...

varju
31分钟前
74
0
区块链资产量化交易中的跨币种对冲策略

在对冲策略中,有各种类型的对冲。跨市场对冲,跨期对冲等等,今天我们来聊一下跨品种对冲,准确的说是区块链资产量化交易中的跨币种对冲策略。通常的对冲交易中的标的物都是相同的,而跨币种...

发明者量化
33分钟前
40
0
创龙基于TI TMS320C6748定点/浮点DSP C674x开发板的拓展IO信号、底板B2B连接器

TL138/1808/6748F-EVM是广州创龙基于SOM-TL138/1808/6748F核心板开发的一款开发板。由于SOM-TL138/1808/6748F核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用核心板+底板的设计...

Tronlong创龙
36分钟前
57
0
解决 Jenkins ERROR : Exception when publishing, exception message [Failure]

问题描述: 在使用 Jenkins 打包部署项目时候遇到异常,打包编译通过,只是没有部署上去,查看了控制台信息如下 ERROR: Exception when publishing, exception message [Failure]Build ste...

糊说八道
37分钟前
56
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部