1. 下载并解压nexus-2.13.0-01-bundle.tar.gz文件
cd /opt
mkdir nexus
cd nexus
wget http://www.sonatype.org/downloads/nexus-2.13.0-01-bundle.tar.gz
修改默认端口号为2222(到conf/nexus.properties修改)
2. 启动nexus
cd/opt/nexus/nexus-2.13.0-01/bin
./nexus start启动
./nexus stop停止
支持这些命令 nexus { console | start | stop | restart | status | dump }
3.运行nexus
在浏览器中输入:http://ip:2222/nexus/ 就可以看到nexus的主页,点击右上角Login
默认用户名和密码是:admin/admin123
运行后会自动生成一个nexus工作目录sonatype-work,nexus下载的jar包会存放在sonatype-work/nexus/storage中
#注意启动时有时会有警告,WARNING - NOT RECOMMENDED TO RUN AS ROOT,可以临时执行export RUN_AS_USER=root,也可以 把这句加入到vi /etc/profile里面,就不会有警告了
4.配置和使用
点击左侧菜单Repositories将右侧Central和Apache Snapshots的Download Remote Index配置改为True,并保存设置
将新增的Repository添加到Public Repositories中在Public Repositories的Configuration中,将多选Select中的项全部添加到左边,然后保存。
添加自己的jar包在repository列表中有一个3rd party,也就是第三方jar包,点击会看到一个Artifact Upload选项卡,点击后,填写相应的信息。
GAV Definition一般选择GAV Parameters
然后添加Group:Artifact:Version:Package
示例juel:juel-impl:2.2.1:jar
然后选择要上传的jar包,保存即可
5.设置开机自启动
Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下:
1、因为其中的rc.local是在完成所有初始化之后执行,因此可以把启动脚本写到里面;
2、用root账号登陆Linux,vim /etc/rc.d/rc.local编辑文件,在最后加入需要执行的脚本程序:
/opt/nexus/nexus-2.13.0-01/bin/nexus start
国内文档maven中央仓库镜像:
1.http://maven.oschina.net/content/groups/public(oschina更新频率更快一些)
2.http://mirrors.ibiblio.org/maven2/
默认apacha snapshots:https://repository.apache.org/snapshots/
附录一些需要了解的:
进入nexus主页以后,点击左边导航栏的Repositories,界面的主面板会显示所有所有仓库及仓库组的列表,它们的Type字段的值有group,hosted,proxy,virtual。这里先不关心virtual
,只介绍下另外三种类型:
hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第二方库。
proxy,代理仓库,它们被用来代理远程的公共仓库,如 maven中央仓库。
group,仓库组,用来合并多个
hosted/proxy仓库,当项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
由此知道,需要配置一个Maven中央仓库的proxy,其实Nexus已经内置了Maven Central,但需要做一些配置。
点击仓库列表中的Maven Central(有的版本是Central),注意到它的Policy是release,这说明它不会代理远程仓库的snapshot构件,英文远程仓库的snapshot版本构件不稳定且不受我们控制,
使用这样的构件含有潜在的风险。发现主面板下方有三个Tab,分别为Browse,Configuration和Mirrors,点击Configuration进行配置,你现在需要关心的是两个配置项:“Remote Storage Location
”为远程仓库的地址,对于Maven Central来说是http://repo1.maven.org/maven2/;“Download Remote Indexes”顾名思义是指是否下载远程索引文件,Maven Central的该字段默认为False,这是为了防止大量Nexus
无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也很大)。这里需要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后,就可以在本地搜索中央仓库的所有构件。
有几个项目是我们可能会经常用到的:
Override local storage location: 在这个选项你可以配置Nexus本地仓库的存放地址,用来覆盖其默认的存放地址
Remote storage location: 这里是远程仓库的地址,为了提高代理速度,默认值是https://repo1.maven.org/maven2/
Download remote indexes: 这里配置是否下载远程索引文件,模式是false, 建议配置为true,这样可以通过索引文件来搜索需要的构件。
前面看到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party.
Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如自己做了一个Web Server的项目, 生成的构件为webserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库
Snapshots: 这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给其他同事使用, 因为同事也正在依赖你的模块开发, 那么这个时候就可以发布Snapshot版本到这个仓库, 同事就可以通过简单的命令来获取和使用这个临时版本.
3rd Party: 顾名思义, 第三方库, 这里的是指可以添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如在中央仓库找不到Oracle 的JDBC驱动, 这个时候就需要自己添加到3rd party仓库.