将各个语言的远程仓库更改为nexus私有仓库

📅 2026/7/30 6:26:07 👁️ 阅读次数 📝 编程学习
将各个语言的远程仓库更改为nexus私有仓库

为什么要使用私有仓库?

  • 加速访问,如果本地缓存的包被删除了,从私有仓库中拉取非常快,不用再从远程服务器拉取
  • 像docker这种仓库去年有段时间国内的都被禁了,只有少部分镜像源,如果自己有缓存
    就不用担心
  • 可以发布自己的包到私有仓库,方便使用

nexus配置

需要在nexus中配置不同仓库的代理,将远端地址写为需要被代理的仓库地址。

如果有本地发布软件包的需求就建hosted仓库,再建一个group仓库>,将Proxy和hosted仓库加进去。本地电脑配置仓库就填group的仓库即可。如maven的我配置了这几个:

alt

其中group聚合了其他的仓库:

alt

同样docker、npm、cargo的仓库我都是这么配的:

alt

Maven

直接在本地的settings.xml中配置镜像:

<mirror><id>nexus</id><mirrorOf>*</mirrorOf><name>私有仓库</name><url>http://dengwei.local:8081/repository/maven-central</url>
</mirror>

<mirrorOf>*</mirrorOf>表示代理所有请求

npm

直接通过命令或者更
改.npmrc文件:

  1. .npmrc在用户目录或者项目目录中,根据需要全局配置或项目单独配置,新增一行:
registry=http://dengwei.local:8081/repository/npm-group/
  1. 直接通过命令,他其实也是更改>👆的配置文件
npm config set registry http://你的Nexus地址/repository/npm-group/

cargo

修改用户目录下.cargo/config.toml

[source.crates-io]
registry = "sparse+https://index.crates.io/"
# 切换私有源或国内镜像,只需修改这里引号内的名称
replace-with = "nexus"[source.nexus]
registry = "sparse+http://dengwei.local:8081/repository/cargo-group/"[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"# registries 就是要发布的仓库
[registries]
cargo-proxy = { index = "sparse+http://dengwei.local:8081/repository/cargo-proxy/" }
cargo-group = { index = "sparse+http://dengwei.local:8081/repository/cargo-group/" }[registries.cargo-hosted]
index = "sparse+http://dengwei.local:8081/repository/cargo-hosted/"
token = "Basic xxx"[package]
publish = ["cargo-hosted"]

gradle

gradle中主要是在配置中增加私有仓库。gradle有两个独立的依赖系统:

  1. 构建脚本依赖 (Buildscript Dependencies)
    • 用途:下载构建工具本身(如 Android Gradle Plugin、Kotlin Plugin)
    • 配置位置:buildscript.repositories + buildscript.dependencies
    • 执行时机:在>解析项目配置之前就需要下载
    • 作用域:仅用于构建过程,不是项目的一部分
  2. 项目依赖 (Project Dependencies)
    • 用途:下载项目代码使用的库(如 androidx、material 等)
    • 配置位置:settings.gradle 的 dependencyResolutionManagement 或模块的 repositories
    • 执行时机:在构建脚本加载之后才解析
    • 作用域:项目的实际运行时依赖
buildscript {repositories {maven {url \'http://dengwei.local:8081/repository/maven-public/\'allowInsecureProtocol = true}}
}

settings.gradle中配置依赖的repository。

dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)repositories {maven {url \'http://dengwei.local:8081/repository/maven-public/\'allowInsecureProtocol = true}}
}

Android Sdk和maven仓库

Google maven仓库

跟配置maven代理相同,针对maven仓库的话nexus需要增加代理,远端地址配置为国内https://maven.aliyun.com/repository/googlehttps://maven.google.com.
并将这个代理添加到public的group中,代码中仓库配置不变。

Sdk仓库

nexus中新建一个代理,远端地址为https://dl.google.com/android/repository/,注意Layout policy选择permissive不然会报错。

alt

可以现在浏览器中访问一下http://dengwei.local:8081/repository/android-sdk-proxy/repository-12.xml(注意修改成自己的地址),如果能下载文件就说明配置成功。

然后再Android Studio的Android Sdk配置的SDK Update Sites中新增一个网站,>注意url要包含最后的斜线,如http://dengwei.local:8081/repository/android-sdk-proxy/.

不过,虽然代理成功了,Android Studio走不走私有仓库还不知道,试了很多包都不行~~~

Docker

docker比较简单,配
置有点不一样,需要在group中增加一个Connector,制定一个端口,这样就可以直接通过域名加端口来配置仓库了。

alt

然后直接修改/etc/docker/daemon.json

{"registry-mirrors":["http://192.168.1.114:6000"],"insecure-registries":["192.168.1.114:6000"]
}

原文链接:https://blog.dengwei.site/article/post-09010806