关闭

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

标签: maven
212人阅读 评论(0) 收藏 举报
分类:

前言

工欲善其事,必先利其器。对于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的插件支持还不够优化等。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Maven实战学习笔记 3.Maven使用入门

在安装好Maven后,编写一个简单的不依赖IDE的Hello World项目。 3.1 编写pom文件         Maven项目的核心是pom.xml文件,创建一个Hello-word文件夹,在...
  • zndxlxm
  • zndxlxm
  • 2016-06-07 22:40
  • 2648

[maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld

maven是一个项目依赖构建系统,通过使用maven,可以有效的管理项目的引用中jar文件等依赖信息,可以方便的对项目进行移植等操作。是一个目前比较流行的项目研发使用框架,该文实现了maven命令行创...
  • sushengmiyan
  • sushengmiyan
  • 2014-10-16 09:38
  • 16358

Maven学习笔记(三) :Maven使用入门

编写POM:      Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。     ...
  • Troy__
  • Troy__
  • 2014-08-26 18:43
  • 3060

《Maven实战》学习笔记——1.概述及配置

一、Maven概述 1.maven的作用: 用于项目管理,简化并标准化项目建设过程,增加重用性。最主要还是可以自动下载项目依赖库(jar)。 2.maven的历史: Maven最初设计,是以简化J...
  • hzh1234565
  • hzh1234565
  • 2017-01-23 11:07
  • 146

Maven实战学习笔记1

Maven实战 Chap 01 Maven简介 1.Maven是扩平台的构建、项目管理、依赖管理工具。   Chap 02 Maven的安装和配置 1.Windows安装: a) 下载压缩包后,配置环...
  • conanswp
  • conanswp
  • 2017-05-18 08:07
  • 476

学习笔记——Maven实战(一)坐标规划

坐标是什么?为什么要规划? 坐标是Maven最基本的概念,它就像每个构件的身份证号码,有了它我们就可以在数以千万计的构件中定位任何一个我们感兴趣的构件。举个最简单的例子,如果没有坐标,使用JUnit...
  • u014520047
  • u014520047
  • 2017-03-15 10:44
  • 68

学习笔记——Maven实战(二)POM重构之增还是删

重构是广大开发者再熟悉不过的技术,在Martin Fowler的《重构——改善既有代码的设计》一书中,其定义为“重构(名词):对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解...
  • u014520047
  • u014520047
  • 2017-03-15 10:46
  • 96

Maven中文开发指南+实战教程+学习笔记

  • 2012-11-22 22:43
  • 17.10MB
  • 下载

《Maven实战》学习笔记目录(转载)

下面是我在网上找到的一篇 《Maven 实战》学习笔记,博主是 琉璃仙境,他的博客主页是 http://suhuanzheng7784877.iteye.com/Maven3实战笔记01环境配置与使用...
  • lw_power
  • lw_power
  • 2015-06-19 10:20
  • 600

Maven实战学习笔记(坐标和依赖)

一、Maven简介 1、什么是Maven
  • mygodmele
  • mygodmele
  • 2014-06-27 17:10
  • 427
    有问题要问?点击QQ联系我!
    有需要,qq联系我
    1160569243
    公告栏
    个人资料
    • 访问:784855次
    • 积分:9947
    • 等级:
    • 排名:第2027名
    • 原创:229篇
    • 转载:38篇
    • 译文:0篇
    • 评论:408条