Nexus是Maven资源仓库管理器。如果在公司里使用Maven,通常应该在本地架设一个Maven资源仓库服务器,在代理远程资源仓库的同时维护本地资源仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,Nexus还提供了强大的资源仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven资源仓库管理器。
搭建局域网Maven服务器www.xue-java.com网站制作 2011年9月8日Nexus是Maven资源仓库管理器。如果在公司里使用Maven,通常应该在本地架设一个Maven资源仓库服务器,在代理远程资源仓库的同时维护本地资源仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,Nexus还提供了强大的资源仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven资源仓库管理器。 一、下载和安装Nexus1、下载Nexus从http://nexus./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进入到以下目录位置: 在这个目录下,有许多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除外):
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)添加如下的镜像配置: 在上面的文件中,我们定义了一个单一的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中的资源库,都不需要团队中的开发者改变他们的本地配置。而管理者对团队应该使用哪个/哪些资源就有了更多地控制。 |
|