CentOS安装Nexus:(二)配置及使用Maven私服

前面一篇文章介绍Nexus的安装,接下来介绍Nexus在项目开发中的使用。

一、访问Nexus

访问地址:http://ip:8081/nexus

账号/密码:admin/admin123


二、Nexus仓库

nexus的仓库类型分为以下四种:

group: 仓库组

hosted:宿主

proxy:代理

virtual:虚拟

首次登陆nexus后可以看到以下一个仓库组和多个仓库。

CentOS安装Nexus:(二)配置及使用Maven私服



PublicRepositories:  仓库组,将以下所有的库集成起来并提供一个URL供我们使用。

3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,如oracle jdbc、documentum第三方开发包等

Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库

Central: 用来代理maven*仓库中发布版本构件的仓库

Central M1 shadow: 用于提供*仓库中M1格式的发布版本的构件镜像仓库

Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库

Releases: 用来部署管理内部的发布版本构件的宿主类型仓库

Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库


三、配置Nexus使得可以搜索Artifact

1,Central仓库配置

Download Remote Indexes:true

Remote Storage Location:http://maven.aliyun.com/nexus/content/repositories/central/

此处特别感谢阿里云提供的镜像。

CentOS安装Nexus:(二)配置及使用Maven私服CentOS安装Nexus:(二)配置及使用Maven私服CentOS安装Nexus:(二)配置及使用Maven私服


配置好以后能浏览远程仓库中内容,如图:

CentOS安装Nexus:(二)配置及使用Maven私服CentOS安装Nexus:(二)配置及使用Maven私服


2,建立索引

首先在nexus上更新索引,保证其索引是最新的。选中仓库右键更新索引,只有更新了外部Maven*仓库的索引后才能搜索到Artifact及jar包,更新索引需要不少时间,步骤如下:

CentOS安装Nexus:(二)配置及使用Maven私服

四、管理第三方jar包

我目前只是用3rd party这个第三方的功能,将maven仓库中没有构件的jar包上传到服务器。如何将第三方的jar上传到nexus上面呢?如下:举例上传oracle的驱动包

   CentOS安装Nexus:(二)配置及使用Maven私服

 

CentOS安装Nexus:(二)配置及使用Maven私服

 

CentOS安装Nexus:(二)配置及使用Maven私服

CentOS安装Nexus:(二)配置及使用Maven私服

 

那么现在nexus已经安装好,怎么使用上传的jar包吧,很简单的,前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下:

先去服务器看看jar的maven构件

CentOS安装Nexus:(二)配置及使用Maven私服

五、配置与Maven使用私服

在路径{maven_home}/conf settings.xml 文件中,为所有仓库配置一个镜像仓库,镜像仓库的地址即私服的地址(这儿我们使用私服公共仓库组 Public Repositories 的地址)

[java] view plain copy
  1. <mirrors>    
  2.      <mirror>  
  3.       <id>nexus</id>  
  4.       <mirrorOf>central</mirrorOf>  
  5.       <name>Human Readable Name for this Mirror.</name>  
  6.       <url>http://ip:8081/nexus/content/groups/public</url>  
  7.     </mirror>  
  8.        
  9.   </mirrors>  


六、迁移Nexus到另一台机器

我们只需要将索引和jar等存储文件拷贝过去

索引位置:

[java] view plain copy
  1. [root@jenkins indexer]# pwd  
  2. /usr/local/sonatype-work/nexus/indexer  
  3. [root@jenkins indexer]# ls  
  4. apache-snapshots-ctx  public-ctx    snapshots-ctx  
  5. central-ctx           releases-ctx  thirdparty-ctx  
  6. [root@jenkins indexer]#   

jar文件存储位置:

[java] view plain copy
  1. [root@jenkins storage]# pwd  
  2. /usr/local/sonatype-work/nexus/storage  
  3. [root@jenkins storage]# ls  
  4. apache-snapshots  central  central-m1  public  releases  snapshots  thirdparty  

七、遇到的问题

1,mvn install时报错,错误信息如下:

[java] view plain copy
  1. Failure to find xxx:jar:1.0 in http://localhost:8081/nexus-webapp-1.9.0/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced  
解决办法:

[java] view plain copy
  1. 去自己的.m2 文件夹下把 xxx.lastUpdated文件全部删掉,重新运行maven,ok!或者在用maven时加 -U参数,就可以忽略xxx.lastUpdated..