Maven基础概念和安装配置教程

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_25827845/article/details/78988909


(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/78988909冷血之心的博客)


什么是Maven?

     Maven是一款跨平台的项目管理工具,是Apache组织中一个成功的开源项目,其主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。


什么是构建?

     构建包括:工程编译、运行测试、生成文档、打包和部署等一系列工作。


Maven是优秀的构建工具

     Maven可以帮助我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。只需要输入一些简单的命令,Maven就可以帮助我们实现那些繁琐重复的工作。


Maven不仅是构建工具

      Maven不仅是构建工具,还是一个依赖管理工具和项目信息管理工具,提供了中央仓库,可以帮助我们自动下载构件。Java应用可能会需要许多第三方的开源类库,需要我们下载并且导入到实际项目中才可以使用。但是,随着依赖的增多,版本不一致、版本冲突以及依赖臃肿等问题日益突出,Maven提供了一个很好的解决方案。Maven通过使用groupid和artifactid来标识每一个构件,也就是通过一个坐标系准备的定位到了一个Java类库。Maven的中央仓库几乎可以找到任何流行的开源类库,都可以免费下载。

     Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目中切换的时候就免去了额外的学习成本,也就是约定优于配置(Convention Over Configuration)

其它构建工具:Make和Ant

(1)Make是一种比较早的构建工具,由一个名为Makefile的脚本文件驱动,使用Make自定义的语法格式。其基本组成部分为一系列的规则(Rules),而每一条规则又包括目标(Target)、依赖(Prerequisite)和命令(Command)。

优点:Make通过一系列的目标和依赖将整个构建过程串联起来,同时利用本地命令完成每个目标的实际行为,其可以利用所有系统的本地命令。

缺点:Make很难实现跨平台构建,并且语法不够简单。

(2)Ant使用XML定义构建脚本,支持跨平台。其构建脚本为build.xml。其接班结构包括目标(Target)、依赖(depends)


Maven的安装

以下所述的安装配置教程均为Windows系统下。

(1)JDK的安装

    Maven的安装前提是JDK已经安装完成,关于如何在Windows系统上安装JDK,请各位另行查阅资料(相信每一个Java开发者的PC上肯定有JDK)

(2)Maven的安装

      首先我们需要到Maven的官网http://maven.apache.org/download.cgi下载安装包apache-maven-3.5.2-bin.zip,解压到本地目录,如D盘,如下所示:


我们分析一下该目录的结构和内容:

bin:该目录中包含了mvn的运行脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。其中mvn和.bat文件分别为unix的shell脚本和Windows下的批处理bat脚本。当我们在命令行中输入任何一条mvn 的命令时,其实就是在调用该目录下的脚本。

boot:该目录只有一个文件,即plexus-classworlds-2.5.2.jar,这是一个类加载器框架。

conf:该目录中包含了一个配置文件settings.xml,如果直接修改时该文件,则是在配置全局范围的Maven行为,所以我们一般情况下将其放入当前用户/.m2/目录下,表示当前用户的Maven行为。

lib:该目录中包含了所有Maven运行时需要的Java类库。

LICENSE.txt:记录了Maven使用的软件许可证。

NOTICE.txt:记录了Maven包含的第三方软件。

README.txt:说明了Maven的简要介绍以及安装需求以及如何安装的简单指令等。

下载并且解压了maven之后,需要配置maven的环境变量,具体配置和JDK的环境变量配置类似,各位可以自行查阅资料(so easy)


以上是针对《Maven实战》前两章的内容总结,看书还是比较系统的,所以进行了一些总结和摘抄吧,接下来我会继续更新,一步一步的学习Maven的相关知识。


如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~


本群给大家提供一个学习交流的平台,内设菜鸟Java管理员一枚、精通算法的金牌讲师一枚、Android管理员一枚、蓝牙BlueTooth管理员一枚、Web前端管理一枚以及C#管理一枚。欢迎大家进来交流技术。




猜你喜欢

转载自blog.csdn.net/qq_25827845/article/details/78988909