compose.yml
version: '3.9'
services:
nexus:
environment:
INSTALL4J_ADD_VM_PARAMS: "-Xms6g -Xmx6g -XX:MaxDirectMemorySize=15530m "
image: sonatype/nexus3:3.41.0
container_name: nexus
restart: always
ports:
- "8081:8081"
volumes:
- /data/appsData/nexus/:/nexus-data
当您代理组件时,存储库管理器充当本地中间服务器,用于发送到远程存储库/注册表的任何下载请求。
地址:http://maven.aliyun.com/nexus/content/groups/public



阿里云 Maven 代理地址:http://maven.aliyun.com/nexus/content/groups/public



移动 aliyun-proxy 到 maven-central (maven 中央仓库)的上面


最终本地 Java 项目中配置的仓库地址就是这里的公共仓库,地址在下图中的红色圆圈中

在自己本地的开发环境中(一般是开发人员自己平时使用的电脑),备份原来默认的 Maven 配置文件 ~/.m2/settings.xml
修改 ~/.m2/settings.xml 文件内容为:
<settings>
<mirrors>
<mirror>
<id>nexus-id>
<mirrorOf>*mirrorOf>
<url>http://192.168.80.226:8081/repository/maven-public/url>
mirror>
mirrors>
<servers>
<server>
<id>nexusid>
<username>adminusername>
<password>Passwordpassword>
server>
servers>
<profiles>
<profile>
<id>nexusid>
<repositories>
<repository>
<id>centralid>
<url>http://centralurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>centralid>
<url>http://centralurl>
<releases><enabled>trueenabled>releases>
<snapshots><enabled>trueenabled>snapshots>
pluginRepository>
pluginRepositories>
profile>
profiles>
<activeProfiles>
<activeProfile>nexusactiveProfile>
activeProfiles>
settings>
在JAVA项目的服务器上创建测试用的项目目录 java-pj,之后再在目录中创建含如下内容的 pom.xml 文件
<project>
<modelVersion>4.0.0modelVersion>
<groupId>com.examplegroupId>
<artifactId>nexus-proxyartifactId>
<version>1.0-SNAPSHOTversion>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.10version>
dependency>
dependencies>
project>
执行如下命令
mvn package
输入预期效果如下图

构建成功:






添加如下字段对应的值
Name: npm-proxy
Remote Store URL: https://registry.npmjs.org/


在项目所在的电脑的命令行执行如下命令
npm config set registry http://Nexus3服务器IP:8081/repository/npm-proxy
http://Nexus3服务器IP:8081/repository/npm-proxy 具体内容可以参考如下方式获取


地址: https://registry.npm.taobao.org



npm config set registry http://192.168.80.226:8081/repository/aliyun-npm/
package.json 文件,并用如下内容填充文件{
"name": "sample_project1",
"version": "0.0.1",
"description": "Test Project 1",
"dependencies" : {
"commonjs" : "0.0.1"
}
}
npm install
出现如下内容,表示成功

### 浏览本地仓库组建






Nexus Repository 将数据存储在 blob 存储中,并将一些 metadata 和配置信息分别保存在数据库中。必须同时备份 Blob 存储和元数据数据库。备份策略应涉及将数据库和 Blob 存储一起备份到新位置,以保持数据不变。完成以下步骤以执行备份
对于文件 Blob 存储,请备份存储 Blob 的目录。
这个可以通过 Tasks 实现



每个 Nexus 存储库实例都与一个不同的 ID 相关联。必须备份此 ID,以便 Blob 存储指标(磁盘上 Blob 的大小和计数)和 Nexus 防火墙报告在还原时正常运行。要备份以保留节点 ID 的文件位于以下位置:
$data-dir/keystores/node/
这个使用操作系统的计划任务实现即可.
0 0 * * * rsync -raP $data-dir/keystores/node/ --rsh=ssh root@远程服务器IP:/path/to/backup
在恢复组件数据库时,还必须恢复包含组件的相应blob存储。不这样做将导致blobstore和数据库之间的同步问题。
## 恢复的步骤:
$data-dir/db 中删除以下目录
$data-dir/restore-from-backup 以进行恢复restore-from-backup 中删除备份文件如果blob存储和数据库备份不是在同一时刻进行的,则在还原后可能会失去同步。
要解决此问题


