《maven实战》读书笔记1——maven是什么?为什么要用maven?

原创 2017年10月13日 17:02:11

前言

工欲善其事,必先利其器。对于java web开发者而言,或者说对于目前大部分java web开发者而言,eclipse、maven、svn、tomcat可能就是目前最常用也是必会的武器了,所以为了更高效的开发和解决问题,经过一番思考后我决定系统性的学学这几样武器。
这几样在我看来一样的重要,也就没有先后之分。都要学,于是我便随便抽了一个,就先从maven开始,主要是结合《maven实战》一书的电子版和纸质版来学习和实践。
为了更好的记忆,同时也为了能在学习的过程中帮到更多人,遂决定做这个系列的笔记。

笔记

目前看了这本书的第一章,主要是对maven的一些介绍,由于这次学习的目的不仅限于知其然,因此这种介绍性的东西也自然需要做好笔记,具体的一些要点记录如下:

maven是什么

优秀的项目构建工具

maven是什么,根据介绍,maven首先是一个优秀的java项目构建工具。而构建是什么,就是通常我们工作中常常要做的那些繁琐的事,如编译、单元测试、打包、部署等等。
在没有maven这样的构建工具的时候,可能每个项目的上述每一项都需要重复的操作,而有了maven,只需要按规范进行一定的配置后,就可以把这些繁琐而重复的工作变得简单而不再那么重复。
同时,使用maven创建项目,具体的创建过程都由maven内部实现,使得凡是使用它构建的项目基本结构都是一样的,这样统一了风格之后便更利于团队的开发效率。
上边的这些,实际上我以前仅仅是用了创建项目、编译、打包这三个而已,其他一些功能由于不知道,也就更不用说使用了。

依赖管理工具

除了项目构建以外,maven另一个强大的功能就是进行依赖管理了。实际上在看这本书之前,在初次接触maven的时候,我最先尝到maven甜头的地方就是这里。
在没有使用maven之前,基本上就是把所有依赖的jar包一个一个找出来,然后放到项目的lib文件夹下,之后再加入到build path中。这样不仅会经常少jar包,更是经常由于关联jar包的版本问题让人头疼不已。
而使用了maven之后,只需要在pom.xml中规范的配置主要用的jar包的坐标就ok了,至于依赖了什么几乎完全不用关心。

项目信息管理工具

前边的两个maven的功能,即便我不是全了解,但是起码是知道一些的,但是对于这个功能,可能我在实际配置的过程中用过或者见过,但是却并没有这种概念。
而学了这一章的介绍后,才明白maven还可以管理如此多的东西,包括项目描述、开发者列表、缺陷管理地址、版本控制系统地址、生成项目文档、测试报告等等,那么在后续的学习和实践中必然要更加细致的了解,相信也可以让后续的工作更加得心应手。

为什么要用maven

知道了maven是什么,也就大概知道了maven能帮我们做什么事,但是除非maven能实现的功能只有它能实现,否则似乎就没有必须使用maven的理由,因为他有了替代性。
那么就需要和一些也能像他一样实现某些功能的工具进行一个比较,有了比较,便有了必用的理由。
就拿构建项目这个功能来说,除了maven,就还有make、ant这样的工具能实现。只不过就像术业有专攻一样,这三个工具特性有所区别,最适合的应用场景也就不一样了。
make和系统结合的非常好,可以使用所有系统的本地命令,但是和系统结合过于紧密,导致可移植性、跨平台不好。
而ant是用java语言写的,就使得他有了可移植性和跨平台,但是ant本身却无法管理依赖,现在虽然可以借助lvy管理依赖,却似乎并不如maven这么方便。
maven有全球公用的免费maven仓库,还由于开源,使得它有大量的插件可以使用。
综上所述,maven可以说是目前java软件开发最优秀的项目构建类工具,也是为什么要使用maven的理由。

maven的不足

由于我自身实际上只用过ant和maven,而且ant也只是最近接触的一个老项目用了,所以对ant和maven的了解都不够,也就无法很肯定的说maven具体的问题和缺陷。
但是所谓金无足赤,人无完人,maven也必然有它的不足,就比如《maven实战》书中说的那样,由于发展历史还较短,使得目前对IDE的插件支持还不够优化等。

版权声明:本文为【生若蜉蝣_涂宗勋】原创,若要转载,请注明出处:http://blog.csdn.net/tuzongxun

相关文章推荐

《Maven实战》读书笔记

之前对Maven有些认识,通过这本书《Maven实战》一起系统的回顾一下,总结的东西不会很全面,但都是日常工作中最常用的。简介:maven翻译为“知识的积累”,基于项目对象模型(Project Obj...

Maven实战读书笔记之二(安装与配置)

1. window安装Maven1.1 安装JDK第一步:下载JDK(JDK1.7下载路径)第二步:设置环境变量安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量 系统变量→新...

《maven实战》读书笔记

maven在实习之前没有用到过,实习期间用的比较多,感觉的确很不错。但是没有系统了解过maven,用起来总感觉不是特别顺手,于是买了《maven实战》,对maven比较陌生但是感兴趣的同学也可以参考这...

Maven实战读书笔记之五(坐标和依赖)

什么Maven坐标 Maven通过坐标元素(groupId、artifactId、version、packaging、classifier)就能在Maven中央仓库定位到构件(jar,war)。或者...

Maven实战读书笔记之三(Maven使用入门)

Maven使用入门编写pom.xml(如下)<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or...

[Maven.Definitive.Guide]读书笔记

Apache Maven的定义:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycl...

Maven读书笔记之七(生命周期和插件)

1. 生命周期What?Maven一般能自动化执行的生命周期有清理、编译、测试、打包,部署。2. 生命周期详解2.1 三套生命周期2.1.1 clean生命周期 pre-clean:清理前的准备工作 ...

[读书笔记]Maven主要概念:依赖

Maven的重要概念:依赖

Maven读书笔记之六(仓库)

1. 什么是Maven仓库what?顾名思义,仓库是用来装资源的。 Maven仓库是用来装载主流开源的构件(比如:log4j-xx.jar构件)。2. 为什么需要Maven仓库?在做某个产品中,mav...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)