使用Nexus搭建Maven私服(一)
下载Nexus
下载地址:https://www.sonatype.com/download-oss-sonatype
Nexus提供两种安装包:一种是包含Jetty容器的bundle包;另一种是不包含容器的war包。
安装及配置Nexus
解压之后会有如下两个文件,前者是安装相关的exe、bat以及配置文件、lib文件等;后者则是存放Nexus的本地仓库jar包、索引文件的目录。(具体还需要再研究)
安装的时候进入【\bin\jsw\windows-x86-64】目录,以本机为例,是Win7-64位的系统,不同的系统分别进入不同的安装目录;“install-nexus.bat”文件是将Nexus安装位Windows系统服务。
安装完成之后,可能发现Nexus无法启动(Windows服务启动失败),可能的原因如下:
- 找不到Jre,需要配置java.exe的定位路径。解决办法:\bin\jsw\conf\wrapper.conf中的java配置“wrapper.java.command=C:/Java/jdk1.8.0_31/bin/java.exe”
- Nexus默认使用8081端口,该端口可能被占用;如本机的8081端口被McAfee的FrameworkService占用。解决办法:Nexus根目录下conf\nexus.properties中的端口配置“application-port=9999”;
- 另外,如果在服务器上搭建Nexus私服,项目组内部要访问的话,需要在服务器上对设置的端口添加入站规则;
登录Nexus
如上图所示,访问的就是自行搭建的Nexus私服;上图中已经登录。
登录的时候点击右上角的login,默认用户名admin,默认密码admin123。
- Public Repositories;仓库组,可以在Configuration中配置用到的仓库(如下图中框出的仓库即是我们用到的仓库,可以从右侧选择要用的仓库);
- 仓库分为proxy,hosted,virtual三种类型;分别是代理仓库、本地仓库、虚拟仓库;
- 3rd parrty,Release,Snapshots这三个hosted仓库;
- Central这个proxy仓库;
- virtual仓库不用管;
- 可以自己增加aliyun的proxy仓库;
更新Central Repository的索引Index
如下图所示,选中Central仓库,点击“Browse Index”查看jar包索引,会发现索引是空的;这是因为Nexus默认时不下载索引文件的,这样我们在查找jar包的时候就查不到结果(这里不考虑在Maven Repository查找,仅仅通过Nexus私服下载的情况,这种情况是可以上外网的)
关于索引文件,可以用两种方式进行更新下载:
定时任务Scheduled Tasks
- 建立定时任务,配置任务类型、任务重复类型等;其中任务类型是Download Indexs,即下载索引文件;
- 可能是更新不下来的,半天都没有什么动静;
手动更新索引
- 首先需要三个文件,放到同一目录;如下图所示(后两个到“http://repo.maven.apache.org/maven2/.index/”下载,第一个到“http://search.maven.org”查找下载);
- cmd进入该目录后执行命令“java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d indexer ”;
- 执行完之后会在indexer文件夹下生成索引文件(需要耗时十几分钟,生成文件2个多G);
- 关闭Nexus服务;
- 将生成的文件拷贝到“\sonatype-work\nexus\indexer\central-ctx”文件夹下;
- 重启Nexus服务,此时就能看到索引文件了;
上传第三方jar包
使用3rd party进行第三方jar包的管理;
两种上传方式,GAV parameters和From POM;
- 选中3rd party仓库;
- 选择GAV parameters方式上传第三方jar包(因为用到的第三方组件没有提供pom依赖关系处理);
- Select Artifact to Upload,选择相应的jar包,会自动识别Group、Artifact、Version等内容,还可以自己补充编辑;
- 然后Add Artifact;
- 执行保存即可上传;
- 选择Browse Storage可以看到对应的jar包组件;