前面一篇文章介绍Nexus的安装,接下来介绍Nexus在项目开发中的使用。
一、访问Nexus
访问地址:http://ip:8081/nexus
账号/密码:admin/admin123
二、Nexus仓库
nexus的仓库类型分为以下四种:
group: 仓库组
hosted:宿主
proxy:代理
virtual:虚拟
首次登陆nexus后可以看到以下一个仓库组和多个仓库。
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/
此处特别感谢阿里云提供的镜像。
配置好以后能浏览远程仓库中内容,如图:
2,建立索引
首先在nexus上更新索引,保证其索引是最新的。选中仓库右键更新索引,只有更新了外部Maven中央仓库的索引后才能搜索到Artifact及jar包,更新索引需要不少时间,步骤如下:
四、管理第三方jar包
我目前只是用3rd party这个第三方的功能,将maven仓库中没有构件的jar包上传到服务器。如何将第三方的jar上传到nexus上面呢?如下:举例上传oracle的驱动包
那么现在nexus已经安装好,怎么使用上传的jar包吧,很简单的,前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下:
先去服务器看看jar的maven构件
五、配置与Maven使用私服
在路径{maven_home}/conf settings.xml 文件中,为所有仓库配置一个镜像仓库,镜像仓库的地址即私服的地址(这儿我们使用私服公共仓库组 Public Repositories 的地址)
- <mirrors>
- <mirror>
- <id>nexus</id>
- <mirrorOf>central</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://ip:8081/nexus/content/groups/public</url>
- </mirror>
- </mirrors>
我们只需要将索引和jar等存储文件拷贝过去
索引位置:
- [root@jenkins indexer]# pwd
- /usr/local/sonatype-work/nexus/indexer
- [root@jenkins indexer]# ls
- apache-snapshots-ctx public-ctx snapshots-ctx
- central-ctx releases-ctx thirdparty-ctx
- [root@jenkins indexer]#
jar文件存储位置:
- [root@jenkins storage]# pwd
- /usr/local/sonatype-work/nexus/storage
- [root@jenkins storage]# ls
- apache-snapshots central central-m1 public releases snapshots thirdparty
七、遇到的问题
1,mvn install时报错,错误信息如下:
- 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
- 去自己的.m2 文件夹下把 xxx.lastUpdated文件全部删掉,重新运行maven,ok!或者在用maven时加 -U参数,就可以忽略xxx.lastUpdated..