(Maven)maven简介

1、maven是什么

     Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件管理工具。

     maven译为“专家”,“内行”。Maven是Apache下的一个纯Java开发的开源项目,它是一个项目管理工具,使用maven对Java项目进行构建依赖管理。当前使用Maven的项目在持续增长。


2、什么是项目构建

     项目构建是一个项目从编写源代码到编译测试运行打包部署运行的过程


     2.1 传统项目构建过程

     传统的使用eclipse构建项目的过程如图:

     

     构建过程如下:

           1) 在eclipse中创建一个JavaWeb工程

           2) 在工程中编写源代码及配置文件等

           3) 对源代码进行编译,Java文件编译成class文件

           4) 执行JUnit单元测试

           5) 将工程打成war包部署至tomcat上,然后运行


     2.2 maven项目构建过程

           maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段:

            

           上图中部分阶段对应命令如下:

                  清理阶段对应maven的命令是clean清理输出的class文件

                  编译阶段对应maven的命令是compile将Java代码编译成class文件

                  打包阶段对应maven的命令是packageJava工程可以打成jar包,web工程可以打成war包

                  运行一个maven工程(web工程)需要一个命令:tomcat:run

           maven工程构建的优点:

                1、一个命令完成构建、运行,方便快捷

                2、maven对每个构建阶段进行规范,有利于大型团队协作开发


3、什么是依赖管理

     什么是依赖?

           一个Java项目可能要使用一些第三方的jar包才能运行,那么就可以说这个Java项目依赖了这些第三方的jar包

          如:一个CRM系统,它的架构是SSH框架,该项目依赖SSH框架,具体依赖的是Struts2、Spring、Hibernate

     什么是依赖管理?

            是对项目所有依赖的jar包进行规范化管理


     3.1 传统项目的依赖管理

         传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,程序员手工将Struts2、Spring、Hibernate的jar包添加到工程中的WEB-INF/lib目录下,如图:

            

           手工拷贝jar包,再添加到工程中所存在的问题:

           1)没有对jar包的版本统一管理,容易导致版本冲突

           2)从网上找jar包非常不方便,有些jar包找不到

           3)jar包添加到工程中导致工程过大


     3.2 maven项目的依赖管理

           maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如图:

        

        使用maven依赖管理添加jar包的好处:

              1)通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突

              2)maven团队维护一个非常全的maven仓库,里面包括了当前使用的jar包,maven工程可以自动从maven仓库中下载所需的jar包,非常便捷


4、使用maven的好处

     1)一步构建

          maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程

     2)依赖管理

          maven工程不用手动到jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错

     3)maven是跨平台的,可在Windows、Linux上使用

     4)maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目


下一篇:maven的安装及相关配置

猜你喜欢

转载自blog.csdn.net/jonez/article/details/80913195