Contents
在nexus中配置java仓库
参考: https://segmentfault.com/a/1190000040446848#item-4-3
之前在k8s中安装了nexus。
maven项目构建的时候,可以指定nexus仓库作为远程仓库,缓存加速下载maven artifect、上传maven打包好的artifect。
nexus默认的maven仓库
默认nexus,已经默认初始化了四个maven相关的仓库。

仓库说明:
Name 列
- maven-central:maven中央库,默认从
https://repo1.maven.org/maven2/
拉取 jar。 - maven-releases:私库发行版 jar。
- maven-snapshots:私库快照版(调试版本)jar。
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置
settings.xml
中使用。
Type 列(Nexus默认的仓库类型有以下四种):
- group(仓库组类型):又叫组仓库,用于方便开发人员自己选择仓库以及设置仓库的顺序;
- hosted(宿主类型):内部项目的发布仓库(内部开发人员发布 jar 包存放的仓库);
- proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签,其中
Remote Storage Location
属性的值即被代理的远程仓库的路径); - virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
分别到各个maven仓库详情看下

maven-central确实是maven中心仓库的代理仓库。
访问这个仓库,就相当于访问了maven中央仓库。
连接maven-central仓库,当第一次下载某个artifact的时候,maven-central会访问中央仓库,并传递对应的artifact给你。之后再次想要下载同一个artifact的时候,会直接把缓存的文件给你,起到缓存加速效果。

maven-snapshots仓库是个host类型的仓库,可以上传artifact。
其版本策略是snapshot,即上传的都是snapshot类型的artifact。比如pom文件中指明了<version>1.0.0-SNAPSHOT</version>
这种-SNAPSHOT
后缀的artifact。

maven-releases仓库也是host类型,允许上传artifact。
不过版本策略是release,即没有-SNAPSHOT
后缀的artifact,会允许上传到这里。

maven-public仓库是group类型的仓库,提供多个仓库的聚合仓库。默认即相当于同时提供了maven-release,maven-snapshots,maven-central仓库的聚合。
当查找下载某个artifact的时候,先从maven-release找,找不到再去maven-snapshots里找, 还是找不到就去maven-central里找。
maven-public的版本策略是mix,即同时允许release和snapshot类型的artifact上传。
当上传某个artifact的时候,如果是-SNAPSHOT
后缀的artifact,会依次查找版本策略为snapshot的仓库,这里默认是maven-snapshots仓库。如果是没有-SNAPSHOT
后缀的artifact,会依次查找版本策略为release的仓库,这里默认是maven-releases。
增加第三方maven库
增加thirdparty库
对应一些需要手工下载维护的包,比如oracle数据库的包,其他公司提供的SDK类库等。可以手动上传到这个maven仓库下。
nexus登录->设置(齿轮按钮)->repositories->create repository->maven2(hosted)
name: thirdparty
version policy: release
进一步,可以将此仓库包含进maven-public聚合仓库。统一使用maven-public查询访问。

增加repo.spring库
repo.spring库,
nexus登录->设置(齿轮按钮)->repositories->create repository->maven2(proxy)
地址是https://repo.spring.io/plugins-release/
同样加入到maven-public仓库的members中。
增加阿里云maven-central-aliyun仓库
阿里云提供了一些maven代理仓库。https://developer.aliyun.com/mvn/view
其中有个是central仓库的代理。https://maven.aliyun.com/repository/central
nexus中新加个proxy类型的仓库
仓库名: maven-central-aliyun
远程存储地址: https://maven.aliyun.com/repository/central
也就是说maven-central-aliyun 仓库–》
增加java账号
nexus登录->设置(齿轮按钮)->Securtity->Users->Create User
java
Java12345
暂授予 nx-admin, nx-anonymous角色。之后有空再细化调整。
发表回复