maven私服搭建(Nexus)

上一篇 / 下一篇  2013-12-24 22:21:41 / 个人分类:maven

Nexus是Maven资源仓库管理器。公司里使用Maven,通常应该在本地架设一个Maven资源仓库服务器,在代理远程资源仓库的同时维护本地资源仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,Nexus还提供了强大的资源仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven资源仓库管理器。 
一、 下载安装Nexus
从http://www.sonatype.org/nexus/archived下载最新版本Nexus,Nexus有两个版本:开源版本,专业版本。这里下载开源版本。
二、 安装Nexus
Nexus需要有jre环境,需要提前安装jdk.解压下载nexus-2.7.0-bundle.zip(如:D:\nexus-2.7.0-bundle)Nexnus目录下有一个名为:sonatype-work的目录,此目录下包含所有资源库和Nexus的配置信息。这样配置在Nexus安装目录之外,使得Nexus的版本更新更加容易。默认情况下,该目录总是作为nexus安装目录的兄弟目录,用来保存资源内容和配置。如果想要改变该目录的位置,可以在文件${NEXUS_HOME}/conf/plexus.properties中修改nexus-work属性。
三、 运行Nexus 
进入D:\nexus-2.7.0-bundle\nexus-2.7.0-06\bin\jsw下在windows系统下,选择自己机器32位还是64位(不同系统进入不同文件夹)执行install-nexus.bat安装nexus后,执行start-nexus.bat启动nexus服务,默认端口号为0.0.0.0:8081。 启动以后,Nexus将处于运行状态并在8081端口上监听为当前主机配置的所有IP地址(0.0.0.0)。要使用Nexus,在浏览器,键入URL:http://localhost:8081/nexus。(也可用127.0.0.1或其他配置的IP地址)。进入Nexus的初始欢迎界面。点击右上方,log in 弹出登录框,默认的用户名:admin ,密码 :admin123
四、 设置远程资源库索引
在Nexus中,用户管理的资源库有三种类型(virtual除外):hosted,本地资源库,通常我们会部署自己的构件到这一类型的资源仓库。proxy,代理资源仓库,它们被用来代理远程的公共资源仓库,如maven中央资源仓库。group,资源仓库组,用来合并多个hosted/proxy资源仓库,通常我们配置maven依赖资源仓库组。
4、1 Nexus代理三个重要的远程资源库:Maven Central资源库、Apache Snapshot资源库和Codehaus Snapshot资源库。每个远程资源库都包含有成千上万的artifact,全部下来是不切实际的。所以Nexus中只维护它们的索引,使用这些索引来搜索artifact,需要的时候再下载内容。不过默认情况下是禁止下载这些索引的,这就需要通过配置允许下载索引。步骤如下:在左侧栏中,选择【Views/Repositories】|【Repositories】,右侧会打开用户管理的资源列表。找到上述的三个远程资源库,在下方的属性窗口,将“Download Remote Indexes”设为“true”,并保存修改。在Nexus下载远程资源库索引文件之后,我们就可以在本地搜索远程资源库的所有构件(artifact)了。
4、2 管理资源库 在左侧栏中,选择【Views/Repositories】|【Repositories】,右侧会打开用户管理的资源列表。在最上面一栏,我们可以更新、添加和删除资源库。
4、3管理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。

5、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。
5、2 为缺失的依赖库添加自定义资源库
如果我们配置Maven的settings.xml列出Nexus的公共组作为所有资源库的镜像,那么可能会遇到不能从本地Nexus安装获取artifact(构建)的问题。这通常是因为我们试图构建一个在pom.xml定义了自定义资源库和snapshotRepositories的项目引起的。当我们遇到包含有在pom.xml中自定义资源元素的项目时,将这个资源添加到Nexus作为一个新的代理资源库,然后将这个新的代理资源库添加到公共组。
5、3 添加两个新的资源库
要添加一个资源库,首先作为管理员登录,单击左侧栏Views/Repositories面板中导航菜单中的Repositories链接。单击这个链接会出现一个窗口,列出Nexus已知的所有资源。要添加新的资源库,单击位于资源列表正上方的【Add…】链接,这时会出现一个下拉列表,有这么几个选项:Hosted Repository, Proxy Repository, Virtual Repository, and Repository Group。因为我们要创建一个代理资源库,所以单击【Proxy Repository】。
5、4  将添加的新资源库加入公共资源库(Public Repositories)
将添加的新资源库加入公共资源库很简单。选择左侧栏【Views/Repositories】|【Repositories】,在右侧出现的资源列表中,单击【Public Repositories】,在下方出现的配置窗口中,将右侧的【Available Repositories】中新添加的两个资源库导入到左侧的【Ordered Group Repositories】中,然后单击【Save】即可。这样配置以后,让团队中所有开发者都指向Nexus中的Public Repository,以后不管我们怎样调整Nexus中的资源库,都不需要团队中的开发者改变他们的本地配置。而管理者对团队应该使用哪个/哪些资源就有了更多地控制。

TAG:

 

评分:0

我来说两句

Open Toolbar