Nexus简介
作为一个非常优秀且我找不到合适的替代品的二进制包储存库,功能也是非常强大,不单纯只能设置Maven
私有仓库。
包括我们常见的Yum
、Docker
、npm
、NuGel
等等。
专业版需要付费,个人用免费版就可以,专业版更加强大。
专业版与免费版区别如下:
使用Nexus
首先下载,提供了三个不同版本,我这就直接用Windows
版本了。
然后解压:
命令cd
到此路径下bin
文件夹:
执行如下命令:
// Unix & OS X ./nexus run // Windows nexus.exe /run
等待跑起来,可能有些慢。
这样就是跑起来了。
默认端口是8081
。
如果端口被占用,我们可以修改配置文件。
我们访问后是如下页面:
管理员密码在文件中需要自行查看:
账户就是admin
。
管理仓库
创建后会自带几个仓库:
仓库 | 类型 | 描述 |
maven-central | proxy | 远程中央仓库 |
maven-releases | hosted | 私库发行仓库 |
maven-snapshots | hosted | 私库快照仓库 |
maven-public | group | 仓库组 |
仓库类型:
类型 | 描述 |
proxy | 可以自主配置使用的远程仓库地址 |
hosted | 内部项目构件发布的仓库类型 |
virtual | 虚拟仓库类型(基本不用) |
group | 可以自由顺序组合多个仓库使用 |
上传Maven依赖
批量上传(这段教程来源互联网):
- 确保项目在本地maven环境下无错误;
- 进入到本地maven仓库下;
- 新创建一个sh脚本(这个脚本是从网上找的,但是已经不记得从哪找的了)
#!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name is important # Get command line params while getopts ":r:u:p:" opt; do case $opt in r) REPO_URL="$OPTARG" ;; u) USERNAME="$OPTARG" ;; p) PASSWORD="$OPTARG" ;; esac done find . -type f -not -path './mavenUpload\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
4.在当前目录执行这个脚本,并加上maven私库的账号密码,以及地址。
./mavenUpload.sh -u admin -p admin -r http://IP:PORT/repository/dataservice/
执行完毕后,刷新maven库,就可以看到上传的包了。
手动上传:
当我们maven库已经形成规模,并且仅仅缺少一两个依赖的时候,我们就通过手动上传的方式添加依赖。
点击上传,点击需要上传到的仓库,然后选择文件。
需要填写如下字段请自行解决:
提醒:
最后包都能顺利下载,但是maven插件却非暴力抵抗,不能提供下载,于是又在maven的配置中加上了私库地址,并且着重加上了<mirrorOf>central</mirrorOf>这个标签。
这样本地项目的依赖和maven插件都恢复正常。
其他命令
Windows:
在
nexus-2.7.0-06/bin/jsw/windows-x86-64
中还有其他的一些脚本
install-nexus.bat
:将Nexus安装成Windows服务;
uninstall-nexus.bat
:卸载Nexus Windows服务;
start-nexus.bat
:启动Nexus Windows服务;
stop-nexus.bat
:停止Nexus Windows服务;
Linux:
- 用户需要进入到
nexus-2.7.0-06/bin/jsw/
目录,根据操作系统类型选择文件夹,进入后然后运行如下命令:./nexus console
。如果需要停止Nexus
,可以使用Ctrl+C
键。例如:Ubuntu32位系统,只需进入到nexus-2.7.0-06/bin/jsw/linux-x86-32/
,然后运行上面的命令即可。- 除console之外,Nexus的Linux脚本还提供如下的命令:
./nexus start
:启动后台Neuxs服务;
./nexus stop
:停止后台Neuxs服务;
./nexus status
:查看后台Nexus服务的状态;
./nexus restart
:重新启动后台Nexus服务;
注意,我这里可能版本和你不一样,所以路径也不愿意,注意版本更新后有所不同,灵活阅读技术文章很重要。
CMD
或者终端界面跑Nexus
,Ctrl+C
后进程也会消失,至于怎么让它在后台保留,想必聪明的你不需要我多教了吧。
尾述
当然,实际使用还有非常多的功能,上传也有很多方法,但是我们如果没有这方面业务,就不需要深入了。
如果有这方面业务,那其实任何技术都是摸爬滚打过来的,慢慢的就熟练了。