1 下载

下载地址:http://maven.apache.org/download.cgi

界面效果如下:

点击之后进入的apache 软件基金的发布目录,在这里你可以下载apache的所有项目。

我们现在要下载maven,只需要找到maven目录就可以了。

找到maven目录进入之后的效果是下面这样的,我们想要下载3版本,就点击maven-3就可以了。

进去之后可以看到3系列的最新版本是3.5.3,

这里我们就使用最新版本3.5.3

这里在强调了maven3.5.3需要的jdk的版本是1.7及其以上。

下面贴上maven版本和jdk版本的对应关系表,方便参考。

进入maven-3.5.3目录,看到里面的目录结构如下:

binaries里面是安装文件,包括windows版本和linux版本两个安装文件

可以根据个人需要下载,我后文讲的windows上面的安装,所以下载的apache-maven-3.5.3-bin.zip文件

2 安装

maven的安装非常的简单,一步搞定。

解压下载的安装文件到一个没有中文没有空格的文件夹里,解压后的目录如下

3 Maven环境变量的配置

要配置 jdk, maven3.5.3 这个版本所需的 jdk 版本必须要 1.7 以上
最终要运行的是 maven 软件中 bin 目录的 mvn 命令
所以要配置 maven 的环境变量
在系统变量添加
环境变量的名称:MAVEN_HOME
变量值:就是 maven 软件解压的目录E:\develop\maven\apache-maven-3.5.3

再path路径下面加入如下内容:%MAVEN_HOME%\bin

验证maven是否配置成功

打开dos命令行,输入mvn -v

出现下面的效果,说明安装成功。

4 Maven仓库

Maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A,项目B以及其它项目都活通过

Maven软件从远程(可以理解为互联网上的仓库)下载jar包并保存在本地仓库,本地仓库,就是本地

文件夹,当第二次需要这些jar包的时候,就不在需要从远程仓库下载,因为本地仓库以及存在了,

可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

maven有三种仓库,它们分别是本地仓库,远程仓库,中央仓库。

1 本地仓库(自己维护)

1.本地仓库(自己维护):用来存储从远程仓库或者中央仓库下载的插件或者jar包,项目使用插件或者jar包的时候,优先从本地仓库查找。
默认位置${user.home}/.m2/repository 也就是:C:\Users\jepson\.m2\repository

2.远程仓库(公司维护)

如果本地需要插件或者jar包的时候,本地仓库没有,这个时候默认去远程仓库下载。

远程仓库可以在互联网上,也可以在局域网内。

3.中央仓库(maven团队维护)

在我们安装的maven软件中内置了一个远程仓库地址:http://repo1.maven.org/maven2,

它就是中央仓库,服务与整个互联网,它是由maven团队自己维护,里面存储了非常全

的jar包,它包含了世界上大部分流行的开源项目构建,统计数量至少超过2亿。

4. 配置本地仓库

新建一个名为repository的文件夹

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

配置前:

配置后:

5. 三种仓库的关系

5 Maven插件在eclipse上的安装

我本地使用的eclipse mars 2 版本,此版本自带maven插件不用安装。

1 查看Maven插件是否存在

在新建窗口中可以看到maven项目的创建项,就表示maven插件以及存在。

2 指定maven的安装目录

在一些高版本的eclipse中已经安装好了maven插件,下图是eclipse mars 2吧呢不能中已经安装的

maven3.3.3版本,项目为了同意maven的版本不会使用eclipse内置的maven版本,这里我是使用

的maven3.5.3.

指定maven的安装目录,使用maven3.5.3版本。

3 User Settings配置

在eclipse中配置使用的maven的setting.xml文件,使用maven安装目录下的setting.xml文件。

注意:如果修改了setting.xml文件,需要点击上图中的“update settings"按钮对本地仓库重建索引,点击Reindex.

4 eclipse中浏览maven仓库

maven配置完成需要测试在eclipse中是否可以浏览maven的本地仓库,如果可以正常浏览

maven本地仓库,怎说说明eclipse集成maven已经完成。

打开eclipse仓库视图,对插件和jar包建立索引。

找到Local repository本地仓库项,点击Reindex index重建索引。

重建索引完成后,即可查看本地仓库的内容:

6 私服

1 私服是什么?

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服。

私服服务器即是公司内部的maven远程仓库,每个员工共的电脑上安装maven软件并且链接私服服务器,

员工将自己开发的项目打成jar并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)

私服还充当一个代理服务器,当私服上没有jar包,则会从互联网中央仓库自动下载。

2 为什么要安装私服?

正式的开发中,项目基本都是分模块开发的,不同的项目组负责开发不同的工程。

例如:A项目组负责maven-dao工程,开发完毕,发不到私服。

B项目组负责maven-service,就可以直接从私服下载dao.

7 搭建私服环境

Nexus是Maven仓库管理器,通过nexus可以搭建maven仓库,同时nexus还提供强大的仓库管理功能,构建搜索功能等。

1 下载

nexus下载地址:https://www.sonatype.com/download-oss-sonatype

界面效果如下:我下载的是windows版本的2.x,目前的最新版本是3.x

2 安装nexus

下载文件

解压上面的压缩文件到E:\develop\maven\nexus下,如下图:

解压完成之后,进入E:\develop\maven\nexus\nexus-2.14.8-01\bin

打开命令行进入当前目录,执行nexus.bat install

1.尽量以管理员的身份打开命令行

2.执行命令

3.查看nexus服务

3.卸载nexus

4.启动nexus

5.查看nexus的配置文件

6.访问

http://localhost:8081/nexus/

7 登录

使用nexus内置账户登录admin/admin123:

点击右上角的login in ,输入账号和密码登录

8.查看仓库

9.nexus的仓库类型

nexus的仓库有四种类型:

nexus仓库默认在sonatype-work目录中,

central:代理仓库,代理中央仓库。

8 将项目发布到私服

1 需求

2 配置

添加到settings.xml中

<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>

在setting.xml文件中找到一个<servers>的标签:

去掉中间的注释,然后将上面提供的代码拷贝到里面去:

注意上面的id是从下面这里来的

<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

3 测试

将项目dao工程打成jar包发布到私服:

1.首先启动nexus

2.对bos-dao工程执行deploy命名。

根据本项目pom.xml中version定义决定发布到那个仓库,如果version定义为snapshot,

执行deploy后查看nexus的snapshot仓库,如果version定义为release则项目将发布到

nexus的release仓库,本项目将发布到snapshot仓库:

下面查看一下:

也可去本地查看:

如果想要将发布到私服的bos-dao.jar包删除, 只需将E:\develop\maven\nexus\sonatype-work\nexus\storage\snapshots

下的com/test/bos-dao删除即可。

9 从私服下载jar包

1 需求

2 管理仓库组

3.在setting.xml中配置仓库

打开setting.xml配置文件,找到里面的profiles标签,中间部分的注释内容可以全部删除掉,然后加入我们自己的内容。

配置完成后的效果:

<profiles>
<profile>
<!--profile的id-->
<id>dev</id>
<repositories>
<repository>
<!--仓库id,repositories可以配置多个仓库,保证id不重复-->
<id>nexus</id>
<!--仓库地址,即nexus仓库组的地址-->
<url>http://localhost:8081/nexus/content/groups/public/</url>
<!--是否下载releases构件-->
<releases>
<enabled>true</enabled>
</releases>
<!--是否下载snapshots构件-->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository>
<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

使用profile定义仓库需要激活才能生效

<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>

4 测试

首先我们将本地仓库中的bos-dao的jar包删除。

然后bos-service开始就会报错,提示确实了bos-dao.jar。

然后执行maven --->update project发现又好了,并且回到仓库中发现又有了bos-dao.jar

在maven-console也可以看到它会去我的私服上下载东西。

一个问题:是不是我们的bos-dao只要有改动就需要发布到私服上面去呢?

答:不是的,只有在bos-service模块需要dao开发新的工程的时候,才需要去改动的,并且需要注意的是,改动之后的版本号

也要改变,如果你还是用<version>0.0.1-SNAPSHOT</version>,bos-service也不知道你这是新的代码,就不会去私服上去下载。

因为和bos-service本地的版本号一直。所以有了修改之后,是要修改版本号的,比如<version>0.0.2-SNAPSHOT</version>.

这个时候只要bos-dao告诉bos-service团队我们的bos-dao发布了新版本,bos-service团队就可以去使用新版本0.0.2了。

maven的安装配置超详细教程【含nexus】的更多相关文章

  1. 在linux下安装配置rabbitMQ详细教程

    在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...

  2. VMware安装Centos7超详细教程

    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定安装参考价值 在没有运维的情况下,很多时候测试需要自己搭建测试环境,而测试环境又分为QA环境,自动化测试环境,uat环境,以 ...

  3. node.js安装及环境配置超详细教程【Windows系统安装包方式】

    文章目录 Step1:下载安装包 Step2:安装程序 Step3:查看 Step4:环境配置 最后补充: Step1:下载安装包 https://nodejs.org/zh-cn/download/ ...

  4. Java环境变量配置超详细教程

    https://blog.csdn.net/Mxdon_on/article/details/89461365 概述 Java的环境配置并不是特别难,但是对刚上手的新手来说确实是一个大问题 首先下载j ...

  5. centos7安装配置gitlab详细教程

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  6. 安装64位Oracle 10g超详细教程

    安装64位Oracle 10g超详细教程 1. 安装准备阶段 1.1 安装Oracle环境 经过上一篇博文的过程,已经完成了对Linux系统的安装,本例使用X-Manager来实现与Linux系统的连 ...

  7. (转)Springboot日志配置(超详细,推荐)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

  8. 数学规划求解器lp_solve超详细教程

    前言 最近小编学了运筹学中的单纯形法.于是,很快便按奈不住跳动的心.这不得不让我拿起纸和笔思考着,一个至关重要的问题:如何用单纯形法装一个完备的13? 恰巧,在我坐在图书馆陷入沉思的时候,一位漂亮的小 ...

  9. Spring Boot-日志配置(超详细)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

随机推荐

  1. angularjs之事件绑定、解除事件绑定

    今天在开发时,遇到一个坑,花了一下午时间也没找到原因,无奈小菜鸟只能寻求公司里大牛的帮助,果然,大牛就是大牛,对比了几个输出结果,就看出问题所在.所以小菜鸟当然不会错过这个分享的时机啦~废话不多说进入 ...

  2. Oracle E-Business Suite R12.1.x Installation And Upgrade Guide Step by Step

    1.        Install Oracle E- Business Suite R12.1.1       2.        Upgrade E- Business Suite From 12 ...

  3. 开源WebGIS实施方案(五):基于SLD实现图层符号化及其应用

    SLD概述 SLD(OpenGIS® Styled Layer Descriptor):图层样式注记.其当前版本是1.1.0.SLD是一种描述地图图层样式的标准,一般用于WMS中的图层符号化. 说白了 ...

  4. MSP430 G2553 LaunchPad设置GPIO

    一. 背景知识:逻辑运算符的使用 当程序初始化时,对于复位状态有不确定性的寄存器(如PxOUT),建议采用直接赋值:其他情况下最好使用逻辑运算符修改寄存器. 直接赋值 REGISTER = 0b111 ...

  5. docker 操作命令详解

    docker attach命令-登录一个已经在执行的容器 docker build 命令-建立一个新的image docker commit命令-提交一个新的image docker cp命令-将容器 ...

  6. solr特点二:Facet(1)

    一.   Facet 简介 Facet 是 solr 的高级搜索功能之一 , 可以给用户提供更友好的搜索体验 . 在搜索关键字的同时 , 能够按照 Facet 的字段进行分组并统计 . 二.   Fa ...

  7. Eavl() 数据绑定格式化时间

    <%#Eval("字段名","{0:yyyy-MM-dd}") %> 或者 <%#((DateTime)Eval("news_tim ...

  8. 纸壳CMS 3.0升级.Net Core 2.1性能大提升

    微软发布了.Net Core 2.1正式版,纸壳CMS也在第一时间做了升级,并做了一系列的优化和调整,性能大幅提升,并解决了一些历史遗留问题,添加了一些新功能. Github https://gith ...

  9. Lock 与Monitor 的用法与区别

    1.lock的底层本身是Monitor来实现的,所以Monitor可以实现lock的所有功能 2.Monitor有TryEnter的功能,可以防止出现死锁的问题,lock没有. 3.Monitor.E ...

  10. Mac下su命令提示su:Sorry的解决办法

    用 sudo su - 输入密码,获得root权限