Nexus是一种流行的Maven远程仓库,我们知道Maven一般有两种仓库,本地仓库和远程仓库,中央仓库是Maven自带的远程仓库,除了中央仓库之外,还存在许多特殊的远程仓库,私服便是一种特殊的远程仓库,使用私服的好处不言而喻:原本我们直接跟中央仓库沟通的,现在在中间加入了一个私服,我们下载一个构件的请求将首先到达私服,如果私服上存在,则直接下载,如果不存在,则首先由私服从中央仓库下载缓存,然后再下载到本地。这种工作模式对于一个团队来说是非常高效的,私服一般工作在公司局域网内,这大大减少了对外网带宽的占用。
本例使用nexus-2.11.2-06 OSS + JDK1.7 + Ubuntu Server14.04
需要注意的是,最新版的nexus 2.11.2-06需要java7u2及以上版本。
下载:
Nexus有三种版本:
• Nexus OSS
• Nexus Pro
• Nexus Pro+
我们使用第一种社区版,下载地址:
http://www.sonatype.org/nexus/go/
安装:
将下载的tar.gz包上传到Linux服务器/tmp下,然后解压到/var/lib 下:
$sudo tar –zxvf /tmp/nexus-latest-bundle.tar.gz -C /var/lib
如果是zip包,则执行:
$sudo unzip /tmp/nexus-latest-bundle.tar.gz -d /var/lib
然后做一个链接,方便日后升级:
$cd /var/lib
$sudo ln -s nexus-2.11.2-06 nexus
目录结构如下:
/var/lib
+- nexus ->nexus-2.11.2-06 链接
+- nexus-2.11.2-06 程序运行目录
+- sonatype-work 工作目录,该目录包含nexus生成的配置,日志,仓库等
我们将nexus安装目录/var/lib/nexus 定义为NEXUS_HOME变量的值,下文描述将引用该值。
sonatype-work这个位置是可以更改的,其配置在$NEXUS_HOME/conf/nexus.properties
# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus
接下来,我们需要创建一个专门运行nexus的用户:
$sudo useradd -m -N -s /bin/sh nexus
然后将所有nexus目录的属主修改为nexus用户,否则不能运行(不建议作为root运行):
$sudo chown -R nexus:root nexus-2.11.2-06
$sudo chown -R nexus: root sonatype-work
然后编辑$NEXUS_HOME/bin/nexus
修改
NEXUS_HOME="/var/lib/nexus"
RUN_AS_USER="nexus"
保存后执行:
$sudo cp $NEXUS_HOME/bin/nexus /etc/init.d
$cd /etc/init.d
$sudo update-rc.d nexus defaults
运行:
需要注意的是Nexus默认运行的端口是0.0.0.0:8081,如果你的服务器该端口已被占用,记得提前更改,可以使用命令检查一下:
$netstat -nltp |grep 8081
如果什么都没显示,则表示该端口没有被占用,如果被占用,则可以这样修改,
其配置在$NEXUS_HOME/conf/nexus.properties:
# Jetty section
application-port=8081
将8081修改Wie一个其他的值即可,比如8082
$cd nexus
$sudo vi conf/nexus.properties
# Jetty section
application-port=8082
接下来我们开始运行Nexus:
$sudo service nexus start
Nexus会启动内嵌的Jetty服务器来运行服务,稍等片刻,我们就可以访问首页了,http://[your IP]:8081/nexus:
接下来,我们需要做一些基本的配置才能使用,比如首先需要修改管理员的密码等。
首先以管理员身份登录,默认用户名密码为admin/admin123
然后点击右上角用户名下拉菜单中的Profile,接着在弹出的选项卡中点击Change Password:
在弹出的选项卡中,修改好保存即可。
同样,在nexus中还有默认的另外两个用户,点击左侧导航栏菜单中的Security->Users
在deployment用户上右键->set Password,修改保存。
接下来,我们要下载Maven中央仓库的索引文件,点击左侧导航菜单栏中的View/Repositories->Repositories
然后点击列表中的Central,在下边切换到Configuration选项卡,然后找到Download Remote Indexs,将其值修改为true.此时Nexus就会创建一个计划任务在后台下载索引,日后方便本地快速搜索构件:
至此,我们的Nexus的私服就可以提供服务了:
http://192.168.0.103:8081/nexus/content/groups/public
建议直接将该地址配置在maven的配置文件中(.m2/settings.xml):
…
…
…
…
参考:
官方文档:http://books.sonatype.com/nexus-book/reference/index.html