注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风之泪

风过雨过,花开花落。。。

 
 
 

日志

 
 

maven3.0.5 nexus代理配置(1)  

2013-03-28 14:07:25|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Nexus简介

           NexusSonatype推出的强大Maven仓库管理器产品,要比以前TSS上介绍的Artifactory要好使用的多,也是一个拆箱即用的Java App,内嵌Jetty容器和Java WrapperWindows服务,安装简单到解压然后双击install即可。更详细的帮助手册请上官方网站查看,这里推荐一个翻译中的书籍——《Maven权威指南》(在线阅读英文版中文版),一本全面介绍Maven的书,其中也有介绍Nexus的章节,猛击这Nexus的优点这里得啰嗦一下(摘抄自Maven中文Blog):

代理远程仓库。配置Nexus代理中央仓库,其它任何公开的Maven仓库,将你组织内部的Maven配置指向Nexus,这样所有构件都将从Nexus下载,如果Nexus没有你要的构件,它会自动先去外部仓库下载到本地,仅一次。

本地宿主仓库。Nexus可以在服务器上建立本地的宿主仓库,你可以往这个仓库里提交任意的Maven规范构件,包括不能从公开仓库下载到的构件,或者你组织内部产生的构件。

仓库组。有了仓库组,你就能将很多仓库聚合起来,对外公开一个统一的接口提供构件服务。

构件搜索。Nexus能下载远程的仓库索引,并在本地构件自己的仓库索引,有了该索引,你就能很快速方便的搜索任何你感兴趣的构件。

事情RSS源。Nexus服务器上发生的几乎任何事情,你都能用RSS监视,方便管理。

ReleaseSnapshots区分。配置Nexus提供Release构件服务或者Snapshots服务,能更清晰的管理构件。

路由。Nexus的路由能够管理为特定的请求提供特定的仓库。加入你在一个组中配置了很多仓库,一条路由能够极大提高某些特定请求的响应速度。

上传构件。使用Nexus你能很方便的在web界面上上传一些特殊的构件至仓库。

高用户体验的UI。使用AJAXREST技术开发的Nexus,在界面上为提供了很舒适的用户体验。

    初始化

1 下载nexus安装包  网址:http://www.sonatype.org/nexus/

   建议下载最新的版本,最新的版本支持比较新的jdk版本

2 启动nexus服务

    进入nexus的文件目录:D:\nexus-oss-webapp-1.9.2.4-bundle\nexus-oss-webapp-1.9.2.4\bin\jsw\windows-x86-32下面,

    Installnexus.bat 表示安装nexus服务到window服务中去。

     Startnexus.bat  表示启动nexus服务。

     nexus.bat  表示启动nexus应用程序

    Resumenexus.bat  表示重启nexus

     Stopnexus.bat  表示停止nexus服务

   启动nexus 无需启动tomcat,只需要点击“nexus.bat "就可以启动。

   启动成功后 在浏览器地址栏中输入:

   http://localhost:8081/nexus/index.html

   如果看到nexus界面 说明启动成功。

默认安装后的访问路径为http://localhost:8081/nexus/ 管理员登录为admin/admin123UI是用Ext搭建的,熟悉Ext的人根本没有操作障碍,登录后最重要的事情就是打开远程索引下载,操作为进入Repository菜单,修改 Apache SnapshotsCodehaus SnapshotsMaven CentralDownload Remote indexs true.  并右击每一个仓库的 repair Index ,进行更新index  并把所有的proxy类型的仓库添加到public repository中去。,这一步别忘,我当时搭建的时候就忘了Re-Index,结果等了一天还 没任何索引文件。

自己觉得比较好的其他的代理仓库如下:

  添加新的repository 即代理仓库

  http://repository.jboss.org/nexus/content/groups/public/

  https://repository.jboss.org/nexus/content/groups/developer/

  http://morphia.googlecode.com/svn/mavenrepo/

Re-Index后,Nexus会从后台去官方地址下载仓库索引文件,大概20M大小,根据网速快慢下载相应时间后选择仓库时会以树形目录的方式显示仓库内容。

maven nexus代理配置 - 风 - 风之泪 

角色权限

Nexus的操作权限完全仿照RBAC角色权限模型,默认三个用户:adminanonymousdeployment,对应的是管理用户、匿 名访问用户和部署用户,管理用户用于仓库管理和系统配置,匿名用户用于仓库查询和仓库下载,部署用户用于私人jar包的上传。在这里,我对 deployment的默认角色Nexus Deployment Role做了自定义修改,加入了"All M2 Repositories"createupdate权限,并且加入了"UI:Base UI Privaties"权限,用意稍后解释。

Nexus的使用

从浏览器里打开访问地址后,通过"Artifact Search"菜单可以进行构件搜索。

对于一些特殊的构件,比如sqlserver2005jdbc驱动,你可以通过管理员登录然后从第三方上传构件

提供仓库组的概念,对于远程代理仓库和本地宿主仓库,还有第三方仓库,全部创建为一个public-group,然后通过访问组就可以访问所有的仓库构件了,这就是所谓的分散存储,统一访问

Maven结合也很简单,首先是要配置Maven,打开$user$/.m2/下的settings.xml(没有的话创建一个),然后拷贝以下内容到文件中:settings.xml 

<settings>
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://服务器IP地址: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>

然后,在从你的工程里的pom.xml中加入以下内容:

<repositories>

<repository>

<id>nexus</id>

<name>nexus</name>

<url>http://192.168.1.59:8080/nexus/content/groups/public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>nexus</id>

<name>nexus</name>

<url>http://192.168.1.59:8080/nexus/content/groups/public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

解释一下:
settings.xml
中的proxies/proxy节点配置的是部署服务器访问属性,deployment/deploy对应的是部署用户名和密 码;mirrors/mirror配置的是maven访问仓库的地址,这里使用的是Nexus提供的群组概念,将多个仓库组成一个public- group的方式进行访问;profiles/profile则主要用来描述仓库部署的访问配置。

上传jar到本地仓库,如第三方的jar gearman 相关的jar

选中3rd party 点击Artifact Upload标签   

maven nexus代理配置 - 风 - 风之泪 

点击 select artifact(s) 按钮 选择要上传到jar 然后再add artiffact 如图所示

maven nexus代理配置 - 风 - 风之泪 

点击 uplaod artiffacts 上传jar

maven nexus代理配置 - 风 - 风之泪 

配置中央仓库

     在左边菜单栏里选择Repositories, 会看到如下的界面:

maven nexus代理配置 - 风 - 风之泪 

其中右边栏上半部分列出当前nexus管理的repository,黑体字是类型为grouprepository. 这里简单介绍下几种repository的类型:

hosted,本地仓库。通常我们会部署自己的构件到这一类型的仓库。比如公司/组织开发的项目

proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库或一些第三方公共仓库。

group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用依赖项时,无需引用多个仓库了,只需要引用一个类型为grouprepository即可。

Maven centralMaven的中央仓库,点击它并选择configuration标签栏,我们会看到下面的页面:

maven nexus代理配置 - 风 - 风之泪 

这里有几个配置项是经常用到的:

Override local storage location:  该选项允许配置 Nexus本地仓库的存放地址,用来覆盖其默认的存放地址

Remote storage location: 该选项允许配置远程仓库的地址。一般为了提高代理速度,你可以将其修改为国内的镜像地址。默认值是http://repo1.maven.org/maven2/

Download remote indexes: 该选项配置是否下载远程索引文件。 建议配置为true,这样我们便可以通过nexus的搜索功能来搜索我们需要的依赖项。

 

 添加代理仓库(proxy)

     nexus默认提供了Maven central这个代理仓库,如果你需要添加其他代理仓库,那么可以点击左边栏页面上的Repositories链接,然后在右边栏页面上依次点击add -> add proxy repository, 随后出现以下页面:

maven nexus代理配置 - 风 - 风之泪 

根据提示填写相关信息保存即可。
    



  评论这张
 
阅读(1211)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018