项目管理工具 maven(1) ---- Maven的概念与安装、配置

1  Maven介绍

1.1   maven是什么

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


1.2   什么是项目构建

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

1.2.1  传统项目构建过程

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

                                          

        构建过程如下:

             1)在eclipse中创建一个java web工程

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

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

             4)执行Junit单元测试

             5)将工程打成war包部署至tomcat运行

1.2.2  maven项目构建过程

        maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段,后面章节详细介绍每个阶段,这里先大概了解下:

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

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

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

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

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

 

        maven工程构建的优点:

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

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


1.3   什么是依赖管理

      什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。

         举个例子:一个crm系统,它的架构是SSH框架,该crm项目依赖SSH框架,具体它依赖的Hibernate、Spring、Struts2。

         什么是依赖管理?就是对项目所有依赖的jar包进行规范化管理。

1.3.1  传统项目的依赖管理

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

                                              

        手工拷贝jar包添加到工程中的问题是:

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

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

        3、jar包添加到工程中导致工程占用空间过大

 

1.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包,非常方便。


1.4   使用maven的好处

        通过上边介绍传统项目和maven项目在项目构建依赖管理方面的区域,maven有如下的好处:

        1、一步构建

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

        2、依赖管理

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

        3、maven的跨平台,可在window、linux上使用。

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


2  maven安装

2.1  下载安装

下载

        从该网站http://maven.apache.org/download.cgi 下载maven3.3.9版本        

解压

        将maven解压到一个不含有中文和空格的目录中。

         

         bin目录   mvn.bat (以run方式运行项目)、mvnDebug.bat(以debug方式运行项目)

         boot目录   maven运行需要类加载器

         conf目录  settings.xml 整个maven工具核心配置文件

         lib目录   maven运行依赖jar包

2.2   环境变量配置

        电脑上需安装java环境,安装JDK1.7 +版本  (将JAVA_HOME/bin配置环境变量path )

        配置 MAVEN_HOME

        

         将 %MAVEN_HOME%/bin 加入环境变量 path

        

        通过 mvn -v命令检查maven是否安装成功,看到maven的版本为3.3.9及java版本为1.7即为安装成功。

       

2.3   maven仓库

2.3.1  maven仓库的作用

       maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

      下图描述了maven中仓库的类型:

                  

      本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示windows用户目录。

                     

      远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。

      中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

2.3.2  配置本地仓库

      将“repository.rar”解压至自己的电脑上,例如解压在F:\develop\maven\repository

                      

       在conf/settings.xml文件中配置本地仓库位置:

                     在<localRepository>F:\develop\maven\repository</localRepository>标签中配置。

                     

2.3.3  全局setting与用户setting

          maven仓库地址、私服等配置信息需要在setting.xml文件中配置,分为全局配置和用户配置。

         在maven安装目录下的有conf/setting.xml文件,此setting.xml文件用于maven的所有project项目,它作为maven的全局配置

         如需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认的位置在:${user.dir} /.m2/settings.xml目录中,${user.dir} 指windows 中的用户目录。

         maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

                


猜你喜欢

转载自blog.csdn.net/ZG_24/article/details/80522352