下载地址:http://maven.apache.org/download.cgilinux
界面效果以下:apache
点击以后进入的apache 软件基金的发布目录,在这里你能够下载apache的全部项目。windows
咱们如今要下载maven,只须要找到maven目录就能够了。缓存
找到maven目录进入以后的效果是下面这样的,咱们想要下载3版本,就点击maven-3就能够了。服务器
进去以后能够看到3系列的最新版本是3.5.3,并发
这里咱们就使用最新版本3.5.3eclipse
这里在强调了maven3.5.3须要的jdk的版本是1.7及其以上。maven
下面贴上maven版本和jdk版本的对应关系表,方便参考。测试
进入maven-3.5.3目录,看到里面的目录结构以下:url
binaries里面是安装文件,包括windows版本和linux版本两个安装文件
能够根据我的须要下载,我后文讲的windows上面的安装,因此下载的apache-maven-3.5.3-bin.zip文件
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
出现下面的效果,说明安装成功。
Maven的工做须要从仓库下载一些jar包,以下图所示,本地的项目A,项目B以及其它项目都活经过
Maven软件从远程(能够理解为互联网上的仓库)下载jar包并保存在本地仓库,本地仓库,就是本地
文件夹,当第二次须要这些jar包的时候,就不在须要从远程仓库下载,由于本地仓库以及存在了,
能够将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。
maven有三种仓库,它们分别是本地仓库,远程仓库,中央仓库。
1.本地仓库(本身维护):用来存储从远程仓库或者中央仓库下载的插件或者jar包,项目使用插件或者jar包的时候,优先从本地仓库查找。
默认位置${user.home}/.m2/repository 也就是:C:\Users\jepson\.m2\repository
若是本地须要插件或者jar包的时候,本地仓库没有,这个时候默认去远程仓库下载。
远程仓库能够在互联网上,也能够在局域网内。
在咱们安装的maven软件中内置了一个远程仓库地址:http://repo1.maven.org/maven2,
它就是中央仓库,服务与整个互联网,它是由maven团队本身维护,里面存储了很是全
的jar包,它包含了世界上大部分流行的开源项目构建,统计数量至少超过2亿。
新建一个名为repository的文件夹
在settings.xml文件中配置本地仓库的位置:
配置前:
配置后:
我本地使用的eclipse mars 2 版本,此版本自带maven插件不用安装。
在新建窗口中能够看到maven项目的建立项,就表示maven插件以及存在。
在一些高版本的eclipse中已经安装好了maven插件,下图是eclipse mars 2吧呢不能中已经安装的
maven3.3.3版本,项目为了赞成maven的版本不会使用eclipse内置的maven版本,这里我是使用
的maven3.5.3.
指定maven的安装目录,使用maven3.5.3版本。
在eclipse中配置使用的maven的setting.xml文件,使用maven安装目录下的setting.xml文件。
注意:若是修改了setting.xml文件,须要点击上图中的“update settings"按钮对本地仓库重建索引,点击Reindex.
maven配置完成须要测试在eclipse中是否能够浏览maven的本地仓库,若是能够正常浏览
maven本地仓库,怎说说明eclipse集成maven已经完成。
打开eclipse仓库视图,对插件和jar包创建索引。
找到Local repository本地仓库项,点击Reindex index重建索引。
重建索引完成后,便可查看本地仓库的内容:
公司在本身的局域网内搭建本身的远程仓库服务器,称为私服。
私服服务器便是公司内部的maven远程仓库,每一个员工共的电脑上安装maven软件而且连接私服服务器,
员工将本身开发的项目打成jar并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)
私服还充当一个代理服务器,当私服上没有jar包,则会从互联网中央仓库自动下载。
正式的开发中,项目基本都是分模块开发的,不一样的项目组负责开发不一样的工程。
例如:A项目组负责maven-dao工程,开发完毕,发不到私服。
B项目组负责maven-service,就能够直接从私服下载dao.
Nexus是Maven仓库管理器,经过nexus能够搭建maven仓库,同时nexus还提供强大的仓库管理功能,构建搜索功能等。
nexus下载地址:https://www.sonatype.com/download-oss-sonatype
界面效果以下:我下载的是windows版本的2.x,目前的最新版本是3.x
下载文件
解压上面的压缩文件到E:\develop\maven\nexus下,以下图:
解压完成以后,进入E:\develop\maven\nexus\nexus-2.14.8-01\bin
打开命令行进入当前目录,执行nexus.bat install
1.尽可能以管理员的身份打开命令行
2.执行命令
3.查看nexus服务
http://localhost:8081/nexus/
使用nexus内置帐户登陆admin/admin123:
点击右上角的login in ,输入帐号和密码登陆
nexus的仓库有四种类型:
nexus仓库默认在sonatype-work目录中,
central:代理仓库,代理中央仓库。
添加到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>
将项目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删除便可。
打开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>
首先咱们将本地仓库中的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了。