Nexus搭建使用

一    搭建本地仓库
    1.本地搭建 Maven 仓库可以使用 Nexus、Artifactory 等工具,这里以 Nexus 为例进行说明。
    下载地址:https://help.sonatype.com/repomanager3/product-information/download/
    双击bin目录下的执行文件  nexus.exe
    
    介绍:
        仓库类型: proxy 代理仓库 比如代理到maven中央仓库。
                   hosted 宿主仓库 即自己的私人仓库。
                   group 仓库组 由多个仓库组成,当要下载依赖时会遍历每个仓库去找。
        仓库格式: maven2 --java
                   nuget  不关注了

        其实能猜到我们使用最多的就是仓库组,可以把代理仓库、releases 和shapshots一起放进去,这样就完美实现:能从私服下载依赖,找不到还能去代理仓库那找。我们只需要在本地maven中配置下载镜像从私服上的仓库组下载就行了。


    创建仓库:
              创建阿里代理仓库,加速访问。       
    

 阿里仓库地址:https://maven.aliyun.com/nexus/content/groups/public

 

 

创建完成后,把这个仓库放到仓库组里面,可以将ali的代理仓库放第一位。 

 

上传依赖

首先找到本地maven的setting.xml,打开后找到servers标签。加入以下内容

 
 <servers>
    <!-- 这是配置访问私有仓库的用户名密码 -->
    <server>
      <!-- id标签可以随便填,只需要在servers中唯一即可,后面很多地方会使用该id -->
      <id>yuting-maven</id>
      <username>admin</username>
      <password>123456</password>
    </server>
  </servers>

用户名密码可在nexus设置中去创建用户,分配对应全新,不建议使用admin账号。

maven配置好了,接下来去maven项目中设置:

在你想上传的模块的pom文件中,写入:

    <distributionManagement>
		
        <repository>
            <id>self-maven</id>
            <url>http://ip:port/repository/maven-releases/</url><!--发行仓库地址-->
        </repository>

        <snapshotRepository>
            <id>self-maven</id>
            <url>http://ip:port/repository/maven-snapshots/</url><!--快照仓库地址-->
        </snapshotRepository>
    
    </distributionManagement> 
  • repository标签是代表上传release版本
  • snapshotRepository标签代表上传snapshot版本

会根据该模块的版本进行自动选择,如果你的版本号带有SNAPSHOT如:<version>0.0.1-SNAPSHOT</version>,那么会上传到SNAPSHOT仓库,release也是这个道理,如果版本号不存在这两个单词,如1.0.0,那么会选择release仓库上传。

标签中的 id,就是上面我们配置的server id,maven会通过这个id去server中拿用户名密码去访问私服仓库。

标签中的url,就是对应仓库的地址:仓库的url复制即可,注意对应仓库,弄反了是传不上去的


ok,针对上传,我们已经配置好了,那么如何上传呢?

在idea右侧,maven中,选择要上传的模块,点击deploy(发布)即可

会先下载一些东西,然后上传。

发布后,在对应的仓库也能查看,我这里是snapshot仓库:

上传到这里就可以了,但有一点需要注意的是,release仓库需要把

设置为Allow redeploy代表允许我们对仓库中的依赖维护升级新版本,如果设置为disable redeploy意味着我们无法将升级版本上传上来。

下载依赖

接下来,配置本地maven。

还是打开setting.xml,找到mirrors标签。

然后添加一个mirror标签:

        <mirror>
			<id>nexus-yuting</id>
			<name>nexus-yuting</name>
			<mirrorOf>*</mirrorOf>
			<url>http://127.0.0.1:8081/repository/maven-public//public/</url>
		</mirror>

如果无法下载,pom文件中添加 distributionManagement标签,如下

    <distributionManagement>
		
        <repository>
            <id>self-maven</id>
            <url>http://ip:port/repository/maven-releases/</url><!--发行仓库地址-->
        </repository>

        <snapshotRepository>
            <id>self-maven</id>
            <url>http://ip:port/repository/maven-snapshots/</url><!--快照仓库地址-->
        </snapshotRepository>
    
    </distributionManagement> 

之前阿里的镜像可以注释了,

添加的镜像:

  • id 之前server的id,访问仓库组也要拿用户名密码
  • mirrorOf *代表所有的依赖都从私服找
  • url 就是仓库组的,还是去仓库组右边copy即可

到这里就能使用私服下载依赖了。

我们需要把之前创建的阿里镜像代理仓库放到仓库组中。

maven-public这个仓库组,把ali代理仓库加进去就行了:

注意

关于nexus代理仓库状态

online-remote available 表示该被代理仓库可用

online-ready to connect并不是代理仓库用不了。而是你根本还没有一个依赖去访问这个被代理仓库,nexus也不知道这个被代理仓库能不能用,所以它只能展示为待连接状态:

该配置:表示代理仓库会根据每次请求被代理仓库的响应来决定是否暂停请求这个被代理仓库,请求无响应就会block。

还有一个Blocked选项,直接阻止,相当于禁用该代理仓库。一般选择auto就行了。

所以 online-ready to connect并不是仓库出现了问题。

新建的代理仓库都是 online-ready to connect状态。

最好在maven配置中还是加上阿里镜像仓库

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值