使用阿里云的仓库:
maven仓库用过的人都知道,国内有多么的悲催。还好有比较好用的镜像可以使用,尽快记录下来。速度提升100倍。
http://maven.aliyun.com/nexus/#view-repositories;public~browsestorage
或:
https://repo1.maven.org/maven2/
在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
安装自己的私服中央仓库
1、下载nexus:
没什么难的,下载一个oss版本,即open source开源版,http://www.sonatype.org/nexus/go 。
2、将下载的zip包或者tgz包解压出来:
如图所示,nexus默认的工作目录为统计目录下的sonatype-work目录,可以在%nexus_home%/conf/nexus.properties中进行修改。
工作目录的作用:最主要是存储,所有的仓库索引文件、插件索引文件都存在工作目录中(storage、plugin-repository目录);另外就是存储系统日志(log文件夹)。因此,工作目录应该设置为磁盘空间较大的目录。
3、启动nexus:
%nexus_home%/bin/js/下找到操作系统对应的脚本console-nexus.bat,运行即可。
nexus默认使用内置的jetty服务器,文件夹中其他的脚本,根据名称很容易理解,无非是安装成windows服务,其他服务、停止服务、卸载服务等。
4、登录并修改密码:
nexus默认的管理员账号为admin,密码admin123,可以通过左侧菜单security-user来修改密码。
5、仓库管理:
点击菜单栏的view/repostories-repostories菜单,进入仓库界面:
(1)仓库类型:
- hosted:宿主仓库,其实就是本地的仓库
- proxy:代理仓库,就是当前私服代理了其他的第三方仓库或Apache的中央仓库
- virtual:虚拟仓库
- group:多个仓库可以组成一个组,使用组就相当于在使用组内的仓库成员的资源
(2)说明:
如图的界面所示,nexus默认有一个仓库组(public repositories),其配置可以通过它的configuration子标签页查看:
可以看到,这个组里边默认有本地的releases、snapsots、3rd party库,同时还有central库,这些仓库的顺序决定了查找资源的顺序,所以最好将本地的放在前边。
- releases库,系统默认的库,存放本地部署的release版包;
- snapshots库,系统默认库,存放本地的snapshot版包;
- 3rd party库,系统默认库,存放第三方包;
- central库,代理Apache中间仓库。
到这里,我们的私服已经可以使用了。
6、使用仓库:
(1)修改maven的配置文件:
找到maven的配置文件(这里我直接修改%M2_HOME%/conf/setting.xml文件),找到节点,添加一个镜像节点:
![windows下使用nexus搭建maven私服的流程和说明 windows下使用nexus搭建maven私服的流程和说明](https://i-blog.csdnimg.cn/blog_migrate/67fc86620f08acccfd3f5856e27655f3.jpeg)
- id:镜像的位唯一标示
- mirrorOf:代理哪些仓库,*为所有的资源都从本maven私服获取
- url:及新搭建的私服的默认仓库组的url地址(通过页面可以查看)
同样,在节点配置一个节点和Repostory节点。
![windows下使用nexus搭建maven私服的流程和说明 windows下使用nexus搭建maven私服的流程和说明](https://i-blog.csdnimg.cn/blog_migrate/48f3566ed97d5f8b4ba9f6e4c6dde599.jpeg)
ok,配置完成,接下来,我们可以在项目的pom.xml中配置需要的jar包,如果本地没有,则会到我们搭建的私服中找其索引文件,并并下载到本地,如果私服没有,则会去仓库组中找(确切的说是仓库组配置的Apache中央仓库去找),找到并将索引文件保存到私服中,将jar包下载到本地仓库中。
因此,我们没必要将中央仓库的所有索引下下来,而是使用到的时候会自动下载。
7、如何发布本地的jar包到私服中?
(1)配置授权:
在maven的配置文件(这里我直接修改%M2_HOME%/conf/setting.xml文件)中,找到节点,添加两个server配置:
- id:必须与项目的pom中配置distributionManagement的中的id相同,唯一标示,这里的release表示发布release版本的包到release仓库,而snapshot表示发布snapshot版本的包到snapshot仓库;
- username:具有私服发布包权限的用户的User ID,具体见私服的权限和用户说明
- password:当然是用户的密码。
<font style="font-size: 16px;"><b>(2)在项目的pom.xml配置文件中,配置发布的地址信息:<\/b><\/font>
<font style="font-size: 16px;"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=6c969b4a0102vlf6&url=http://album.sina.com.cn/pic/001Zi7RUgy6QNt6DCUcfc" target="_blank"><img src="http://s13.sinaimg.cn/mw690/001Zi7RUgy6QNt6DCUcfc&690" width="690" height="211" id="image_operate_22241426672443242"><\/a><br><br><\/font>
<font style="font-size: 16px;"><b>(3)ok,配置完成<\/b><\/font>
可以发布你的jar包到私服中了,如果项目的pom.xml中,version属性有SNAPSHOT表示为快照版,则会发布到snapshot仓库中,否则,发布到release仓库中。
<font style="font-size: 18px;"><b>注意事项总结:<\/b><\/font>
1、私服不会下载中央仓库的所有jar包,而是下载其索引文件,最终的jar包还是来自中央仓库或第三方仓库;
2、不需要一开始就下载中央仓库的索引文件,该文件很大,而是使用过程中逐渐下载;
3、注意仓库组的概念,一般来说默认的组已经完全够用了,按照需要,可以自己建立需要的仓库。
完