为了完善开发技能,以实验(实践)的方式,
使用Maven部署(deploy)jar包到私仓,
因为,公司的私仓我没有用户名和密码,无法登录,
所以,准备自己在本地Ubuntu20.04构建私仓,使用Nexus Repository(开源版:OSS 3.40.1),
第一步是构建私仓,保证有实验环境,
Nexus环境搭建分享如下,帮助有需要(爱折腾)的开发者构建自己的实验环境。
由于Nexus Repository OSS 3.40.1无法通过官网下载,特,利用CSDN的文件下载渠道,
我设定的积分为0,可以免费下载,见后文链接。
Nexus的仓储提供二进制仓库管理,即存储开箱即用的软件包。
官网的Nexus仓库描述如下图:
Nexus repository在开发中的位置如下图所示,
由图可知,开发者开发完成后(Python、C、Go、Java等),
构建项目,
将项目上传到Nexus Repository,此时开发者完成软件开发(若无Bug以及升级需求)。
之后,使用者即可从Nexus Repository拉取需要的软件包使用。
Nexus应用中的架构如下图所示,开发侧向Nexus发起拉取软件包请求,如果Nexus仓库没有需要的软件包,
Nexus尝试从远程公共仓库拉取软件包(在maven-central中配置代理的远程仓库),
所以,Nexus私有仓库是一个软件包的管理器,有些私有的软件包可以在私有Nexus仓库发布并在公司内使用。
sudo apt install openjdk-8-jdk
路径:/usr/lib/jvm/java-8-openjdk-amd64
sudo apt install maven
官网传送门:https://help.sonatype.com/repomanager3/product-information/download
下载不了的,从这个连接免费下载:https://download.csdn.net/download/Xin_101/86247134
按照各自平台选择:
新建文件夹:nexus-3.40.1,
将文件nexus-3.40.1-01-unix.tar.gz解压到nexus-3.40.1,
命令如下:
tar -zxvf nexus-3.40.1-01-unix.tar.gz -C /home/xindaqi/software/install/nexus-3.40.1
解压完成后,会在nexus-3.40.1文件夹生成两个目录:
nexus-3.40.1-01和sonatype-work,
通过虚拟机配置文件:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01/bin/nexus.vmoptions
可知,sonatype-work是nexus的运行时数据(如日志,pid等)存储目录。
为避免与其他服务端口冲突,特修改nexus的运行端口为:18081,
配置文件:/home/xindaqi/software/install/nexus-3.40.1/nexus-3.40.1-01/etc/nexus-default.properties
application-port=18081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
nexus.hazelcast.discovery.isEnabled=true
./bin/nexus start
./bin/nexus run
/bin/nexus stop
序号 | 命令 | 描述 |
---|---|---|
1 | run | 前台启动Nexus服务 |
2 | start | 后台(守护进程)启动Nexus服务 |
3 | restart | 重启Nexus服务 |
4 | stop | 停止Nexus服务 |
5 | force-reload | 重新加载配置文件 |
6 | status | 查看Nexus状态 |
使用IP和PORT,前提是端口开放,
如果PORT没有开放,配置防火墙,开放18081端口。
http://192.168.211.129:18081/
本机自测:
http://localhost:18081/
Nexus成功启动并成功进入Web界面后,
在路径中/home/xindaqi/software/install/nexus-3.40.1/sonatype-work/nexus3/admin.password
会生成admin初始密码。
打开上面admin.password文件,获取初始密码,
进行登录,
序号 | 属性 | 描述 |
---|---|---|
1 | username | 用户名,管理员用户名:admin |
2 | password | 密码,初始密码在文件admin.password |
接下来就可以部署jar包测试,参见实战详解Maven部署(deploy)jar到私有仓库Nexus及如何引入私仓jar包。
序号 | 仓库 | 描述 |
---|---|---|
1 | maven-central | 中央仓库,默认从https://repo1.maven.org/maven2/拉取软件包,可配置 |
2 | maven-public | 公共仓库,存储发行版和快照版的软件包,即发行版和快照版的软件包都会在public中 |
3 | maven-releases | 发行版仓库,软件包稳定后,发布到该仓库,团队内使用 |
4 | maven-snapshots | 快照版本仓库,用于测试软件,发布到线上 |
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database ‘OSystem’ due to limited free space on the disk (3436 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit)
核心:
(1)Nexus的仓储提供二进制仓库管理,即存储开箱即用的软件包,Nexus Repository官网。
(2)安装Nexus Repository,初始化密码在:nexus路径/sonatype-work/nexus3/admin.password,登录时直接使用,并且系统会让用户修改密码;
(3)启动Nexus时,如果系统的文件空间不足4096MB,会启动失败,此时,可以增加硬盘容量或者调整存储上限:storage.diskCache.diskFreeSpaceLimit;
(4)实际应用中,私有Nexus是软件包的管理器,可以发布公司内部私有使用的软件包,如果需要使用公开的共用包,则配置maven-central代理公开的公共仓库,如阿里仓库。