网络上关于搭建maven私服的文章很多,但对于maven仓库索引的配置这方面还是较少,本文主要讲述如果快速搭建一个nexus私服,以及如何手动更新索引文件。
本文所用的环境:操作系统CentOS 6.5 64bit,nexus版本nexus-2.8.0-05-bundle
从sonatype官网下载nexus的安装包,这里我下载的版本为nexus-2.8.0-05-bundle,文件名带有bundle表示该文件集成了web服务器,也就不需要再部署到其他中间件上面了。
tar –zxvf nexus-2.8.0-05-bundle.tar.gz
通过上面的命令将其解压到指定的文件夹下,会发现有如下两个文件夹
nexus-2.8.0-05 sonatype-work
在nexus-2.8.0-05/bin目录下有一个名为nexus的shell脚本文件
./nexus console
上面的命令就启动了nexus以控制台的方式,这会将启动的相关信息全部打印出来
注意,这里不建议使用root用户来运行nexus,使用其他用户我们需要考虑一下文件系统的权限问题,不然程序可能无法启动,报出Permissiondenied错误
使用root用户执行如下命令
chmod -R o+w {nexus-home}/
{nexus-home}表示nexus的根目录
上面的命令将nexus整个文件夹(包括其子文件和子文件夹)向普通用户开放了write权限,于是我们就可以使用普通用户执行nexus脚本了,执行命令./nexusstart
StartingNexus OSS...
StartedNexus OSS.
若出现如上结果,则说明nexus OSS已经成功启动了,下面通过浏览器访问{hostname|ipAddr}:8081/nexus即可出现如下画面
Congratulations!到这里我们已经搭好了nexus私服。下面就是配置maven中心仓库的索引了。如果有耐心的话,完全可以通过在线更新索引的方式来做,但所消耗的时间较长,下面介绍一种简单、可行的方式来手动更新索引文件。
访问http://repo.maven.apache.org/maven2/.index/下载中心仓库最新版本的索引文件,在一长串列表中,我们需要下载如下两个文件(一般在列表的末尾位置)
nexus-maven-repository-index.gz
nexus-maven-repository-index.properties
下载完成之后最好是通过md5或者sha1校验一下文件是否一致,因为服务器并不在国内,网络传输可能会造成文件损坏。
下面就是解压这个索引文件,虽然后缀名为gz,但解压方式却比较特别,我们需要下载一个jar包indexer-cli-5.1.1.jar,我们需要通过这个特殊的jar来解压这个索引文件
将上面三个文件(.gz & .properties & .jar)放置到同一目录下,运行如下命令
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
等待程序运行完成之后可以发现indexer文件夹下出现了很多文件,将这些文件放置到{nexus-home}/sonatype-work/nexus/indexer/central-ctx目录下,重新启动nexus
./nexus restart
我们可以看到Central仓库下面就可以出现大量的索引文件了
使用管理员账户登录(默认为账户admin,密码admin123)nexus,PublicRepository仓库的地址默认为
http://{ip-addr}:8081/nexus/content/groups/public/
该地址就可以作为maven的setting文件的repository-path了,对于设置setting文件在此就不细说了。
下面列出关于nexus的一些常见问题
nexus默认监听端口为8081,如果修改这个端口号呢?
在{nexus-home}/nexus-2.8.0-05/conf目录下有一个nexus.properties的配置文件,通过修改application-port属性为自己想要设定的端口号即可