首页 > DevTools > 搭建Maven私服:Nexus(入门篇)

搭建Maven私服:Nexus(入门篇)

在用Maven进行项目开发的时候,经常会遇到个别jar下载很慢或者无法找到,您一定被这种情况恶心过。甚至有的公司访问外网受限制,比如LZ就是个例子。这时候就需要搭建Maven私服,可以避免团队开发人员重复从公网下载资源,提高下载速度(因为所有jar都转移到了内网服务器上)。

Let’s get started!

一.环境部署
环境:Centos 6.3
LZ安装方式用的是官网下载的war包,直接放置到apache的webapps路径下,启动apache服务。
链接 http://www.sonatype.org/nexus/go

注:点击红色方框部分

服务启动成功之后,打开浏览器输入URL ,下图是我的地址

http://192.168.1.201:8080/nexus-2.4.0-09/index.html#welcome

服务器IP+端口号+nexus版本
有一点要注意的是 默认情况下,nexus的工作目录在${user_home}/sonatype-work目录,在linux下如果是root用户就是:
/root/sonatype-work ,这样的话不便于管理,所以修改tomcat 下nexus 目录下的 plexus.properties ,修改参数nexus-work,如我的
nexus-work=/home/frankwong/sonatype-work/nexus

二.配置详解

管理员用户名密码默认为 admin/admin123

通过点击首页右上角的Log In,填入用户名和密码,即可看到管理界面,如下

2.1 配置repository
在Views/Repositories–>Repositories里进行配置

nexus有3种类型的仓库,分别是proxy、hosted、group 如上图

proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用
默认情况下,Nexus自带了如下配置的代理仓库:
Apache Snapshots
这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repository
Codehaus Snapshots
这个仓库包含了来自于Codehaus的快照版本。 http://snapshots.repository.codehaus.org/
Central Maven Repository
这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/

hosted是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。在central repository是获取不到的,就需要手工上传到hosted里 Maven自带了如下配置的宿主仓库。
3rd Party
这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有:你组织使用的,商业的,私有的类库如Oracle JDBC驱动。
Releases
这个宿主仓库是你组织公布内部发布版本的地方。
Snapshots
这个宿主仓库是你组织发布内部快照版本的地方。

group是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了

配置proxy
在打开的列表中依次选择type字段为proxy的记录,在下方的编辑区 Configuration 中修改”Download Remote Indexes”值为true,再从这三个仓库上点右键选择”Update-Index”

配置hosted
3rd party、Snapshots、Releases,分别用来保存第三方jar,项目组内部的快照、项目组内部的发布版 只是Deployment Policy这个选项,一般Snapshots会配置成允许,而Releases和3rd party会设置为禁止

配置group repository

group其实是一个虚拟的仓库,通过对实体仓库(proxy、hosted)进行聚合,对外暴露一个统一的地址
如本例的 http://192.168.1.201:8080/nexus-2.4.0-09/content/groups/public/

注:放到左边的仓库,才是会被聚合的仓库

修改用户Maven 的settings.xml文件

注:* 配置保证该镜像nexus是Maven唯一使用的仓库 同时在url后面不要加/,否则会出现无法更新索引的错误提示

三 版本发布
首先在maven的settings.xml 增加如下内容

然后在项目的pom.xml 增加如下内容

注意红色部分,两个id要严格相同,其他值,相信大家一看就明白
接着我们要进行版本发布,
比如我尝试发布快照版本,按照下图红色部分修改

然后我们进行发布操作,cmd->进入到项目的根路径->输入mvn deploy

如果要发布releases 版本,只需按照图中红色圈圈部分,把 SNAPSHOT 改成 RELEASE即可
发布后的snapshots和releases可以分别在

http://localhost:8081/nexus/content/repositories/snapshots

http://localhost:8081/nexus/content/repositories/releases

找到
最后要说明的是version字段如果不标明的话,默认是作为release

分类: DevTools 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*