maven之nexus仓库管理器搭建

    由于现在项目中需要引入的jar包越来越多,所以就引入了maven,配置后然后就去Maven中央仓库http://repo1.maven.org/maven2/ 下载所需要的构件(artifact),但是这样都不是很好的做法,因为这样会浪费很多的带宽和大量的时间,于是nexus就出现了。nexus 作为仓库管理器提供构件搜索功能,里面的构件基本满足你想要的东西。下面我们就开始在本地来搭建nexus。
     Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,你只须简单的将其发布到web容器中即可使用。
Bundle方式安装
    解压nexus-webapp-1.3.0-bundle.zip 至任意目录,如D:\dev_tools ,然后打开CMD,cd至目录D:\dev_tools\nexus-webapp-1.3.0\bin\jsw\windows-x86-32 ,运行Nexus.bat 。你会看到Nexus的启动日志,当你看到“Started [email protected]:8081”之后,说明Nexus启动成功了,然后打开浏览器,访问http://127.0.0.1:8081/nexus,你会看到如下的页面:

要停止Nexus,Ctrl+C即可,此外InstallNexus.bat可以用来将Nexus安装成一个windows服务,其余的脚本则对应了启动,停止,暂停,恢复,卸载Nexus服务

WAR方式安装
   我就是用的这种方式,首先你需要一个可以正常运行的容器,我用的tomcat7,所以就以tomcat为例,如果你没有tomcat 可以去 http://tomcat.apache.org/download-70.cgi下载一个tomcat。启动成功运行后如图:

然后我们就去下载nexus 下载war 包,地址: http://www.sonatype.org/nexus/go
将下下来的zip解压复制到tomcat的webapps中,启动tomcat就OK了,再访问地址:
http://localhost:8080/nexus/
就会出现:

说明就成功了,你可以登陆进去,登陆账号和密码 默认的为:admin/admin123
点击左边导航栏的Repositories,界面的主面板会显示所有一个所有仓库及仓库组的列表,你会看到它们的Type字段的值有group,hosted,proxy,virtual。这里我们不关心virtual,只介绍下另外三种类型:

•hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。
•proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
•group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。

在这里,我们需要配置一个Maven中央仓库的proxy,其实Nexus已经内置了Maven Central,我们只需做一些配置。点击仓库列表中的Central-->Configuration进行配置,我们只需要修改两个配置项就行:“Remote Storage Location”为远程仓库的地址,对于Maven Central来说是http://repo1.maven.org/maven2/,“Download Remote Indexes”顾名思义是指是否下载远程索引文件,Maven Central的该字段默认为False,这是为了防止大量Nexus无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也很大)。这里我们需要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后,我们就可以在本地搜索中央仓库的所有构件。 这儿需要下载一段时间,你就耐心点等吧。下图就是开始我们操作的步骤:


Nexus预定义了3个本地仓库,分别为Releases,Snapshots,和3rd Party。这三个仓库都有各自明确的目的。Releases用于部署我们自己的release构件,Snapshots用于部署我们自己的snapshot构件,而3rd Party用于部署第三方构件,有些构件我们不能从公共仓库下载到,我们就需要将其部署到自己的仓库中。

本地仓库
这里我们可以创建自己的本地仓库。点击Repository面板上方的Add按钮,然后选择Hosted Repository,然后在下方的配置面板中输入id和name,注意这里我们不再需要填写远程仓库地址,Repository Type则为不可修改的hosted,而关于Repository Policy,你可以根据自己的需要选择Release或者Snapshot,如图:


仓库组
   Nexus中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样的,我只管根据groupId,artifactId,version等信息向你要构件。为了方便Maven的配置,Nexus能够将多个仓库,hosted或者proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。

Nexus预定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组,前者默认合并所有预定义的Release仓库,后者默认合并所有预定义的Snapshot仓库。我们在本文前面的部分创建了一个名为“myName”的仓库,现在将其合并到“Public Repositories”中。

点击仓库列表中的“Public Repositories”,然后选择下方的"Configuration" Tab,在配置面板中,将右边“Avaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中,如图:




搜索构件

我们使用maven的时候是需要配置dependency的,我们可以根据关键字在nexus中进行模糊搜索:如我想要找spring的一些构件直接输入spring就行就可以找到spring 下面的所有构件,如图:


将右下框的maven information 中的xml信息复制到你的pom文件中就ok了。

我就说到这儿了,其他功能你可以继续研究

猜你喜欢

转载自jynine.iteye.com/blog/1846712