码迷,mamicode.com
首页 > 其他好文 > 详细

搭建局域网Maven服务器

时间:2014-12-29 21:38:14      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

Nexus是Maven资源仓库管理器。如果在公司里使用Maven,通常应该在本地架设一个Maven资源仓库服务器,在代理远程资源仓库的同时 维护本地资源仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,Nexus还提供了强大的资源仓库管理功能,构件搜索功能,它基于 REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven资源仓库管理器。

一、下载和安装Nexus

1、下载Nexus

从    http://nexus.sonatype.org/downloads/    下载最新版本的Nexus,Nexus有两种版本:开源版本和专业版本。这里我们下载开源版本。

下载界面如下图所示:

技术分享  

2、安装Nexus

安装Nexus只有一个前提,就是必须先安装JRE,Java 5或Java 6都可以(推荐使用Java 6)。

Nexus提供有两种安装方式,一种是内嵌Jetty的bundle绑定包,只要有JRE就能直接运行。第二种方式是WAR,只须简单的将其发布到web容器中即可使用。这里我们重点讲解第一种安装方式。这种方式可以将Nexus(开源版本)作为一个单独的服务器来安装。

Nexus绑定有一个Jetty,Jetty监听主机(0.0.0.0)上所有配置的IP地址并默认运行在端口8081。

解压nexus-oss-webapp-1.9.1.1-bundle.zip 至任意目录,如D:\nexus,然后配置环境变量${NEXUS_HOME},指向目录D:\nexus\nexus-oss-webapp-1.9.1.1,此即为nexus的安装目录。

Nexus安装目录总有一个兄弟目录,名为“sonatype-work”。这个目录包含有所有资源库和Nexus的配置信息,这样配置在 Nexus安装目录之外,使得Nexus的版本更新更加容易。默认情况下,该目录总是作为nexus安装目录的兄弟目录,用来保存资源内容和配置。如果想 要改变该目录的位置,可以在文件${NEXUS_HOME}/conf/plexus.properties中修改nexus-work属性。

3、运行Nexus

进入到以下目录位置:


   D:\nexus\nexus-oss-webapp-1.9.1.1\bin\jsw

在这个目录下,有许多Nexus运行的平台可供选择,如下图所示:

技术分享  

我用的是windows系统,所以选择图中红框选中的平台:windwos-x86-32。进到目录以后,可以看到有许多批处理文件。如下图:

技术分享  

如果是第一次运行,首先运行Installnexus.bat批处理程序,将其安装为Windows服务,然后运行Startnexus.bat批处理程序,启动Nexus服务器。如下图:

技术分享  

当我们启动Nexus时,我们是在启动一个web服务器,默认端口号为0.0.0.0:8081。Nexus运行在名为Jetty的 Servlet容器中,它由一个名为“Tanuki Java Service Wrapper”的本地服务包装器启动。可以通过配置这个service wrapper,将Nexus作为一个Windows服务或一个Unix daemon运行。

启动以后,Nexus将处于运行状态并在8081端口上监听为当前主机配置的所有IP地址(0.0.0.0)。要使用Nexus,首先打开一个浏览器,键入URL:    http://localhost:8081/nexus    。(也可用127.0.0.1或其他配置的IP地址)。这时会打开Nexus的初始欢迎界面,如下图所示:

技术分享  

单击页面右上角的【log in】链接,会弹出登录对话框,默认的用户名是“admin”,密码是“admin123”。如下图所示:

技术分享  

登录后界面如下:

技术分享  

二、配置Nexus

以管理员身份登陆成功后,会看到左边的导航栏增加了很多内容。在这里,我们可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权 限,查看系统的RSS源,管理及查看系统日志,等等。可以看到Nexus的功能十分丰富和强大。在本教程中,我们只介绍一些最基本的管理和操作。

1、修改密码

在管理界面左侧栏,选择【Security】|【Change Password】,会弹出密码修改对话框。建议修改默认密码,以保证安全。

技术分享  

2、设置远程资源库索引

在Nexus中,用户管理的资源库有三种类型(virtual除外):

  • hosted,本地资源库,通常我们会部署自己的构件到这一类型的资源仓库。

  • proxy,代理资源仓库,它们被用来代理远程的公共资源仓库,如maven中央资源仓库。

  • group,资源仓库组,用来合并多个hosted/proxy资源仓库,通常我们配置maven依赖资源仓库组。

Nexus代理三个重要的远程资源库:Maven Central资源库、Apache Snapshot资源库和Codehaus Snapshot资源库。每个远程资源库都包含有成千上万的artifact,全部下来是不切实际的。所以Nexus中只维护它们的索引,使用这些索引来 搜索artifact,需要的时候再下载内容。不过默认情况下是禁止下载这些索引的,这就需要通过配置允许下载索引。步骤如下:

在左侧栏中,选择【Views/Repositories】|【Repositories】,右侧会打开用户管理的资源列表。找到上述的三个远程资源库,在下方的属性窗口,将“Download Remote Indexes”设为“true”,并保存修改。如下图所示:

技术分享  

在Nexus下载远程资源库索引文件之后,我们就可以在本地搜索远程资源库的所有构件(artifact)了。

3、管理资源库

在左侧栏中,选择【Views/Repositories】|【Repositories】,右侧会打开用户管理的资源列表。在最上面一栏,我们可以更新、添加和删除资源库。如下图:

技术分享  

4、管理Maven仓库组

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

Nexus预定义了“Public Repositories”仓库组,默认合并所有预定义的Release仓库。

点击列表中的“Public Repositories”,然后选择下方的"Configuration" Tab,在配置面板中,将右边“Avaiable Repositories”中的资源库移动到左边的“Ordered Group Repository”中即可,如图:

技术分享  

三、配置Maven使用本地Nexus

要使用Nexus,我们需要配置我们的Maven检查Nexus,而不再是公共资源库。要达到这个目的,我们需要在~/.m2 /settings.xml(Maven 3.0.3 为%MAVEN_HOME%\conf\settings.xml)文件中编辑镜像设置(mirror setting)。

这一章,我们首先演示怎样配置Maven使用我们安装的Nexus取代直接从Maven中央资源库获取artifact。接下来,我们将覆盖中 央资源库并演示Nexus的工作,返回来,我们将提供一个更加灵敏的setting设置,这个设置将覆盖release和snapshot。

1、配置Maven使用单一Nexus组

如果我们调整Nexus用于局域网内部开发,我们应该配置一个单一的Nexus组,让它包含release和snapshot。要达到这个目 的,添加snapshot资源库到我们的公共组(public group),并向Maven的设置文件~/.m2/settings.xml中(Maven 3.0.3 为%MAVEN_HOME%\conf\settings.xml)添加如下的镜像配置:


   <settings>    
   <mirrors>    
   <mirror>    
   <!--This sends everything else to /public -->    
   <id>nexus</id>    
   <mirrorOf>*</mirrorOf>    
   <url>http://192.168.0.254:8081/nexus/content/groups/public</url>    
   </mirror>    
   </mirrors>    
   <profiles>    
   <profile>    
   <id>nexus</id>    
   <!--Enable snapshots for the built in central repo to direct -->    
   <!--all requests to nexus via the mirror -->    
   <repositories>    
   <repository>    
   <id>central</id>    
   <url>     http://central</url>    
   <releases><enabled>true</enabled></releases>    
   <snapshots><enabled>true</enabled></snapshots>    
   </repository>    
   </repositories>    
   <pluginRepositories>    
   <pluginRepository>    
   <id>central</id>    
   <url>     http://central</url>    
   <releases><enabled>true</enabled></releases>    
   <snapshots><enabled>true</enabled></snapshots>    
   </pluginRepository>    
   </pluginRepositories>    
   </profile>    
   </profiles>    
   <activeProfiles>    
   <!--make the profile active all the time -->    
   <activeProfile>nexus</activeProfile>    
   </activeProfiles>    
   </settings>

在上面的文件中,我们定义了一个单一的profile:nexus。配置这个nexus profile用来使用    http://central    伪URL从中央资源库下载。这个URL被同一settings.xml文件中的镜像设置所覆盖,并指向我们的单一Nexus组的URL。然后在activeProfiles元素中列出该nexus组作为一个活动的profile。

2、为缺失的依赖库添加自定义资源库

如果我们配置Maven的settings.xml列出Nexus的公共组作为所有资源库的镜像,那么可能会遇到不能从本地Nexus安装获取 artifact(构建)的问题。这通常是因为我们试图构建一个在pom.xml定义了自定义资源库和snapshotRepositories的项目引 起的。当我们遇到包含有在pom.xml中自定义资源元素的项目时,将这个资源添加到Nexus作为一个新的代理资源库,然后将这个新的代理资源库添加到 公共组。

3、添加两个新的资源库

要添加一个资源库,首先作为管理员登录,单击左侧栏Views/Repositories面板中导航菜单中的Repositories链接。单 击这个链接会出现一个窗口,列出Nexus已知的所有资源。要添加新的资源库,单击位于资源列表正上方的【Add…】链接,这时会出现一个下拉列表,有这 么几个选项:Hosted Repository, Proxy Repository, Virtual Repository, and Repository Group。因为我们要创建一个代理资源库,所以单击【Proxy Repository】。如下图所示:

技术分享  

技术分享  

技术分享  

4、将添加的新资源库加入公共资源库(Public Repositories)

将添加的新资源库加入公共资源库很简单。选择左侧栏【Views/Repositories】|【Repositories】,在右侧出现的资 源列表中,单击【Public Repositories】,在下方出现的配置窗口中,将右侧的【Available Repositories】中新添加的两个资源库导入到左侧的【Ordered Group Repositories】中,然后单击【Save】即可。如下图所示:

技术分享  

这样配置以后,让团队中所有开发者都指向Nexus中的Public Repository,以后不管我们怎样调整Nexus中的资源库,都不需要团队中的开发者改变他们的本地配置。而管理者对团队应该使用哪个/哪些资源就有了更多地控制


搭建局域网Maven服务器

标签:

原文地址:http://my.oschina.net/ghm7753/blog/362045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!