Maven是什么

简介: Maven是什么,maven的安装,maven的仓库配置方式

一、Maven是什么

  Maven是一个Apache公司的开源项目,是项目构建工具。用来管理依赖。

1、Maven的好处

  使用maven可以在项目中不用导入项目依赖的jar包,省去了下载和导入jar包的过程,使项目的大小等到了缩减。

2、Maven好处如何实现

  Maven通过一个仓库来存放jar包,在Maven项目中,不再需要导入这些jar包,只需要告诉项目所依赖的jar包的坐标,Maven就会自己将我们项目所需要的jar包给我们依赖进来。在maven中仓库有三种:

  (1) 本地仓库:本地仓库就在自己的机器上,我们可以在自己的机器上创建一个maven仓库,然后就需要的jar包导入进去,就可以在项目中引用。

  (2) 私服仓库:私服仓库在公司局域网内,公司可以在自己的局域网内创建一个仓库,将项目所需要的jar包存放在此仓库中,这样整个项目组就都可以使用此仓库提供的jar包,不再需要在自己本地创建仓库来保存jar包。

  (3) 中央仓库:中央仓库是最大的一个仓库,由Apache组织来负责维护,几乎包括了现在所有的jar包(有一些涉及版权问题没有,比如:oracle数据库的连接jar包),但是中央仓库的访问速度非常慢。

3、Maven如何在仓库中查找jar包

  Maven在仓库中查找jar包需要使用到jar的“坐标”信息,坐标信息由“公司名称+项目名称+版本信息”三部分构成。如小图所示

1.png

4、Maven的两大核心

  (1) 依赖管理:对项目需要使用到的jar包进行管理。

  (2) 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署。


二、Maven的安装

1 安装前提

  Maven是用Java开发的,所有在安装之前必须要安装Java jdk,并且进行Java环境变量的配置,必须要配置JAVA_HOME变量。

2 Maven的下载

  Maven是Apache的一个开源项目,可以直接去Apache官网下载,下载apache-maven-3.5.0-bin.zip即可。下载地址:http://maven.apache.org/download.cgi

3 Maven的安装

  将下载下来的.zip压缩包进行解压,得到如下几个目录

  (1) bin目录:该目录下主要存放的是一些可执行文件。

  (2) boot目录:是Maven的引导文件(基本用不到)。

  (3) conf目录:该目录存放Maven的配置文件。

  (4) lib目录:该目录存放Maven运行所需要的jar包。

4 配置环境变量

  (1) 配置MAVEN_HOME 系统变量:改变量名称必须为“MAVEN_HOME”,配置到Maven的根目录下,即bin目录的上一级目录下即可。

  (2)配置path变量:path变量配置到bin目录即可。

     

5 测试是否安装成功

  打开cmd,进入dos,然后输入命令"mvn -v",如果出现版本信息,则安装成功。


三、三种Mavne仓库的配置方式

1 本地仓库的配置

  在第一篇中我们介绍过,Maven的仓库有三类,这里不再介绍。

  1、要创建本地仓库我们需要有相应的jar包文件,本人经过长时间的寻找和积累,已经有了一个jar包仓库,现将此jar包提供给大家使用。下载地址:http://pan.baidu.com/s/1jH77z2Q

  2、将下载先来的仓库文件解压到你要存放的地方。文件解压后有1.13G大小,请合理选择存放地方。解压后目录如图:

    2.png

  3、配置Maven的本地仓库。

    在Maven的安装目录下的conf目录下找到settings.xml文件,打开该文件,修改如下部分:

    3.png

 2私服仓库的配置

  私服仓库的配置比较复杂。

  1、 下载sonatype Nexus来搭建私服

    我们可以自己去下载https://www.sonatype.com/download-oss-sonatype。下载如下文件。下载速度比较慢,这里提供一个自己的百度云盘下载链接,大家可以去网盘下载:http://pan.baidu.com/s/1gfcLFzl

           4.png

  下载该文件后对该文件进行解压缩,进入D:\nexus-2.14.4-03-bundle\nexus-2.14.4-03\bin\jsw目录下可以看到很多文件夹,然后根据自己机器的操作系统选择相应的目录,本文以64位Windows操作系统为例。

        5.png

  2 安装nexus服务

    运行该目录下的install-nexus.bat文件(右击以管理员身份运行),该窗口会一闪而过,然后运行start-nexus.bat文件,等该文件运行窗口关闭后,在浏览器访问http://127.0.0.1:8081/nexus/。就会看到该欢迎页面。

      6.png

   3、创建私服仓库 

 然后点击右上角的log in 进行登录,默认用户名:admin,密码:admin123。登陆后在右边选项卡 Views/Repositories下选择 Repositories就可以看到所有仓库,该地方不做过多的介绍,只介绍如何进行私服仓库配置。

    7.png

  选择上方的add按钮,然后选择hosted Repositiry创建一个本机仓库,填入仓库相应的信息即可创建成功。

       8.png

   9.png 

  4、配置私服信息

  和本地仓库一样,私服仓库也需要在setting.xml中进行配置,这样才能够访问。

  在setting.xml 文件中找到<profiles></profiles>标签,在其中插入如下代码,其中的id,name标签内的内容必须要和在nexus中创建仓库是所填的仓库ID和仓库名称一致,URL标签内的内容就是该仓库创建后后面显示的地址。

<profile><id>localRepository</id><repositories><repository><id>myRepository</id><name>myRepository</name><url>http://127.0.0.1:8081/nexus/content/repositories/myRepository/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile>

  然后还必须要激活改配置,在setting.xml文件的<activeProfiles></activeProfiles>标签内插入如下代码段。


<activeProfile>localRepository</activeProfile>

  配置分发构建到私服的验证,在setting.xml文件的<servers></servers>标签内插入如下代码段

<server><id>myRepo</id><username>admin</username><password>admin123</password></server>

  至此私服仓库就配置成功了。

3 中央仓库的配置

  配置中央仓库和配置私服仓库类似:

    1、在setting.xml 文件中找到<profiles></profiles>标签,在其中插入如下代码,其中的id,name标签内的内容必须要和在nexus中创建仓库是所填的仓库ID和仓库名称一致,URL标签内的内容就是该仓库创建后后面显示的地址。


<profile><id>central</id><repositories><repository><id>Central</id><name>Central</name><url>http://repo1.maven.org/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile>

  2、然后还必须要激活改配置,在setting.xml文件的<activeProfiles></activeProfiles>标签内插入如下代码段。

<activeProfile>central</activeProfile>

4 三个仓库之间的关系

  三者之间的关系是,当我们在项目中依赖一个jar包时,Maven程序会先去本地仓库中找,如果没找到就回去私服找,如果还是没有,最后就回去中央仓库找。其过程如下图:

  10.png

相关文章
|
数据可视化 Java 项目管理
|
数据安全/隐私保护
Maven-2
Maven-2
84 0
|
5月前
|
Java Maven 开发工具
Maven 特点
Maven是一个强大的Java项目管理工具,其特点包括:遵循统一规范的项目设置,支持跨工程共享;具备自动更新依赖的功能,并拥有庞大的库资源;可扩展,允许用户编写Java或脚本插件;几乎无需额外配置即可使用新功能;基于模型的构建系统,能自动生成JAR、WAR等格式的输出;能创建一致性项目站点,包含标准报告和自定义文档;支持发布管理和源代码管理集成;具有向后兼容性,方便旧版本迁移;子项目能继承父项目的依赖;并行构建提升编译效率;提供改进的错误报告,链接到详细解释页面。
|
3月前
|
Java 测试技术 程序员
Maven(二)
Maven(二)
40 0
|
6月前
|
存储 Java 关系型数据库
|
存储 Java 程序员
Maven详解
Maven详解
329 0
|
Java 应用服务中间件 Apache
maven
maven
102 0
|
Java 测试技术 应用服务中间件
【Maven】了解
【Maven】了解