maven学习系列——(一)maven简介[通俗易懂]

这个系列学习maven,主要是看maven实战和其他网站上整理出自己一些知识点,方便自己以后查找和使用! 这个系列的我先根据自己在公司经常使用到的一些知识点进行整理,后期在做完善! 计划:要在2017 年之前学习和整理完成!

大家好,又见面了,我是全栈君。

这个系列学习maven,主要是看maven实战和其他网站上整理出自己一些知识点,方便自己以后查找和使用!
这个系列的我先根据自己在公司经常使用到的一些知识点进行整理,后期在做完善!
计划:要在2017 年之前学习和整理完成!

1:什么 Maven ?

- Maven意为“知识的积累”、“专家”或者“内行”的意思,maven是一个跨平台的项目管理工具,是     Apache的一个成功的开源项目。

-Maven是一个服务于基于java平台的项目构建、依赖管理和项目信息管理。 
-Maven现在的应用很广泛,不管是小型的项目还是大型的项目, 不管是传统的瀑布开发模式还是流行的敏捷开发模式,Maven都可以胜任。

2:什么是构建,maven优秀个构建工具?

-构建(bulid):对代码的进行编译、运行单元测试、生成文档、打包和部署等! 
-Maven是优秀的构建工具:Maven的设计之初的用途之一就是服务于构建,它是一个强大的构建工具, 能够帮助我们自动化的构建过程,从清理、编译、测试到生成报告,在到打包和部署,
例如执行 mvn clean install ,就会执行上面的过程,帮助我们处理那些繁琐的任务。

-Maven是跨平台的,不管是在window是上,还是在linux上或者Mac,都可以使用同样的命令。 
-Maven还有一个优点:可以帮助我们标准化构建过程。

3:Maven不仅仅是构建工具

-Maven 不仅是构建工具,还是一个依赖管理工具和项目信息管理工具。 
-Maven帮助我们管理第三方的开源类库,解决依赖的增多,版本不一致,版本冲突,依赖臃肿。 
-Maven提供了一个免费的中央仓库,在里面可以找到几乎所有开源的类库。 
-Maven对于项目来讲,对项目的结构,测试用例命名等内容有既定的规则,遵循了成熟的规则, 这种 约定优于配置(Convention Over Configuration),使得项目切换效率更高。

4:为什么需要maven进行构建?

-IDE 虽然在大大提高了开发效率,但是大多的构建工作都是需要手动完成,效率低,易出错。 并且每个开发人员在使用的时候配置不同,跨机器跨平台可用性低。

-Make 是最早的构建工具。是通过Makefile的脚本驱动,有自己的定义的一些语法和规则。 在Linux/UNIX系统,是很好的功能强大的高效的命令去完成构建的任务。但是很难进行跨平台。
还有就是语法的问题,有时候一个构建失败的原因或许是一个 难以发现的空格或者Tab使用错误。

-Ant 这是一个不得不说的构建工具,早期的tomcat 就是用Ant进行构建的。 Ant可以看做是Java版本的Make,实现跨平台,使用xml进行构建,但是Ant也是过程式的,
开发者需要显示指定每一个目标,以及完成该目标需要执行的任务。
Maven声明式的,项目的各个阶段和过程所需的工作都可以有插件完成。

-Ant没有依赖管理,所以使用的Ant的用户都需要手动的去管理依赖。

5:被误解的maven

Maven在发展到现在集成了很多的IDE,很多集成的支持性差,bug多不稳定,就会听到否定之声。

永远要记得:命令行执行的方式才是Maven最高效的方式。

Maven 是用来构建和管理项目的,清理、编译、测试、打包、发布等一些自定义的过程本身
就是复杂的事情,所以不要指望Maven简单。

6:Maven与极限编程

极限编程-敏捷开发,拥抱变化。

Maven 如何适应极限编程(XP):

 - 简单:提供一系列一致和简洁的接口,简化构建系统的复杂度。 
 - 交流和反馈:于版本结合后,所有人能执行最新的构建并得到反馈。 
 - 测试驱动开发:TDD强调测试先行,所有的产品都应该由测试用例覆盖。    而测试是Maven生命周期的最重要的组成部分,Maven集成了业界流行的测试框架,如JUnit和TestNG。

 - 十分钟构建:十分钟构建强调我们能够快速地从源码构建出最终的产品。 
 - 持续集成:CI强调项目以很短的周期(如15分钟)集成最新的代码。业界流行的CI服务器    如Hudson等和Maven可以很好的进行集成。

 - 富有信息的工作区:Maven可以快速的发布测试报告,可以配置,把信息推送到开发者。、 
 最后Maven能够帮助我们快速的发布项目。

少年,在路上!不卑不亢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121220.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • davinci DM365-DM368开发攻略—linux-2.6.32移植

    davinci DM365-DM368开发攻略—linux-2.6.32移植本文最始出自http://www.360doc.com/content/12/0318/16/532901_195392228.shtml一、介绍linux-2.6.32:Linux-2.6.32的网上介绍:增添了虚拟化内存de-duplicacion、重写了writeback代码、改进了Btrfs文件系统、添加了ATIR600/R7003D和KMS支持…

    2022年8月13日
    12
  • js事件防止冒泡

    js事件防止冒泡

    2022年2月1日
    46
  • NodeJS环境下使用axios上传文件

    NodeJS环境下使用axios上传文件最近有个需求,需要在nodejs后端上传图片到云存储服务器,刚好对axios这个库比较熟悉,因此便开始在网上查资料,但是网上大多的都是用axios在前端上传文件的代码,即是基于浏览器环境的。后来找到了基于Nodejs环境的axios上传代码,一番copy后便开始了测试,本以为会一帆风顺,没想到服务器那边却总是返回如下错误,也就是说我们的请求并没有以multipart/form-data的形式封装好…

    2022年6月16日
    109
  • MATLAB interp1

    MATLAB interp1小音乐MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,’method’)           其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,’method’表示采用的插值方法,MATLAB提供的插值方法有几种:’method’是最邻近插值,’linear’线性插    值;’spline’三次样条插值;’c

    2022年6月12日
    32
  • Prism教程二: Bootstrapper

    Prism教程二: Bootstrapper在程序中使用框架必然要有一个切入点,框架会在这里进行初始化,处理相关配置等。在Prism中扮演这一角色的就是Bootstrapper。Prism提供了一个抽象基类Bootstrapper,这个类里面包含了许多空的虚方法,可以重写他们添加自己的逻辑。这个

    2022年7月20日
    16
  • Lua使用心得(1)

    这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口、组件,随便你怎么叫),希望能用脚本来控制主程序的行为。这实

    2021年12月25日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号