01 nexus配置java仓库

在nexus中配置java仓库

参考: https://segmentfault.com/a/1190000040446848#item-4-3

之前在k8s中安装了nexus。

maven项目构建的时候,可以指定nexus仓库作为远程仓库,缓存加速下载maven artifect、上传maven打包好的artifect。

nexus默认的maven仓库

默认nexus,已经默认初始化了四个maven相关的仓库。

image-20230917013833631

仓库说明:

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仓库详情看下

image-20230917014342609

maven-central确实是maven中心仓库的代理仓库。

访问这个仓库,就相当于访问了maven中央仓库。

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

image-20230917015928849

maven-snapshots仓库是个host类型的仓库,可以上传artifact。

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

image-20230917020328337

maven-releases仓库也是host类型,允许上传artifact。

不过版本策略是release,即没有-SNAPSHOT后缀的artifact,会允许上传到这里。

image-20230917020710632

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查询访问。

image-20230917022530097

增加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角色。之后有空再细化调整。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注