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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 蓝桥杯单片机NE555编程

    蓝桥杯单片机NE555编程

    2021年11月12日
    52
  • dumpbin options「建议收藏」

    dumpbin options「建议收藏」dumpbin.exexx.exe /options >x:\\xx.txtoptions:  /ALL  /ARCHIVEMEMBERS  /CLRHEADER  /DEPENDENTS  /DIRECTIVES  /DISASM[:{BYTES|NOBYTES}]  /ERRORREPORT:{NONE|PROMPT|QUE

    2022年6月19日
    26
  • java 中stopwatch,Stopwatch

    java 中stopwatch,Stopwatch/***Anobjectthataccuratelymeasureselapsedtime:themeasureddurationbetweentwo*successivereadingsof”now”inthesameprocess.*一个精确计算消耗时间的对象:计算在同一进程中两次连续读取当前时间之间持续的时间*Incontrast,wallti…

    2022年6月23日
    27
  • Python win32api_python api文档

    Python win32api_python api文档本文整理汇总了Python中win32api.SetCursorPos方法的典型用法代码示例。如果您正苦于以下问题:Pythonwin32api.SetCursorPos方法的具体用法?Pythonwin32api.SetCursorPos怎么用?Pythonwin32api.SetCursorPos使用的例子?那么恭喜您,这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方…

    2022年10月11日
    1
  • C语言中从键盘输入字符串时的一些问题[通俗易懂]

    C语言中从键盘输入字符串时的一些问题[通俗易懂]C语言中从键盘输入字符串时的一些问题1.scanf()scanf()在输入字符串时有很大的弊端,例如:1).scanf()在从键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个,而是从scanf()中传入的地址开始一直访问下一个元素的内存,碰见空格符或者回车符时才停止读入并存入结束符’\0’,这就有可能造成了一个在C中非常严重的问题,访问非法内存.如果…

    2025年6月1日
    0
  • 用Java实现在【520,1314】之间生成随机整数的故事

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!在未来城市工作的的程序员小木,做了一个梦,梦到自己在塔鲁姆的街道上看到一个姑娘,这个姑娘从远处走向他,脸上带着微笑。让小木很是着迷,小木呆呆的望着姑娘从他身边走过,当他回过神来,发现姑娘已经走远,小木赶忙去追这位姑娘,突然天空中飘下一张字条,上面写着:我一眼就看出你是Java程序员了,当你能用代码实现 520~1…

    2022年2月28日
    52

发表回复

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

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