zoukankan      html  css  js  c++  java
  • Windows使用Nexus搭建Maven私服

    简介

    Maven私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件,有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库,否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

    下载(version-2.x)

    官网下载页:https://www.sonatype.com/download-oss-sonatype

    链接:https://pan.baidu.com/s/1z-L29iFBD4y_i1PRMzwryA
    提取码:tk3h

    安装

    • 解压安装包nexus-2.14.1-02-win.zip,打开命令提示符,进入nexus-2.14.1-02-win.zip/bin目录

    在这里插入图片描述

    • 安装命令
    nexus.bat install
    

    在这里插入图片描述

    • 卸载命令
    nexus.bat uninstall
    
    • 打开服务窗口,nexus已安装,右键启动该服务
      在这里插入图片描述
    • 打开浏览器,访问:http://localhost:8081/nexus/
      在这里插入图片描述
    • 点击右上角Log In,使用用户名:admin,密码:admin123登录

    Nexus修改默认端口

    • 找到Nexus的配置文件nexus.propertiesNexus根目录/conf/nexus.properties
      在这里插入图片描述
    • 更改为自定义端口
      在这里插入图片描述

    修改管理员账号密码

    • 使用管理员账号登录后点击上方profile,进入到个人信息页面即可修改密码
      在这里插入图片描述
      在这里插入图片描述

    Nexus仓库类型介绍

    登陆Nexus,在左边菜单栏里选择Repositoriesrepository的类型有一下几种:

    • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第三方库
    • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库
    • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可
      在这里插入图片描述

    Nexus预置了3个本地仓库,分别是ReleasesSnapshots3rd Party

    • Releases:存放自己项目中发布的构建, 通常是Release版本的
    • Snapshots:存放非release版本, 非稳定版本
    • 3rd Party: 存放第三方库

    Nexus建库

    • Add-->HostedRepository
      在这里插入图片描述
    • 我们这里建一个非正式库,按图填写信息,注意框的地方,填写完成后save
      在这里插入图片描述
    • 然后选择PublicRepositories,打开configuration选项卡,将自己创建的仓库添加到group,如图从右侧移到左侧,点击save保存,至此,已经成功搭建好自定义的仓库了
      在这里插入图片描述

    Nexus创建账号

    • 按图创建账号
      在这里插入图片描述

    jar包上传下载配置

    • 远程仓库认证,在settings.xml中配置<servers>节点
    <servers>
    	  <server>
    		<id>tbsnexus</id>
    		<username>tb-user</username>
    		<password>P@ssw0rd</password>
    	  </server>
    </servers>
    

    上述代码中配置了一个idtbsnexus的远程仓库认证信息,Maven使用settings.xml文件中的servers元素及其子元素server配置仓库认证信息,认证用户名为tb-user,认证密码为P@ssw0rd,这里的关键是id元素,id没有要求,随便定义,但是后面配置远程仓库的id必须和这里的id保持一致,正是这个id将认证信息与仓库配置联系在了一起

    • 配置远程仓库
    <profiles>
        <profile>
          <id>tbsnexus</id>
          <repositories>
            <repository>
              <id>tb-repositories</id>
              <name>Repository for tb-repositories</name>
              <url>http://39.100.65.160:8081/nexus/content/repositories/tb-repository/</url>
    		  <releases>
    			<enabled>true</enabled>
    		  </releases>
    		  <snapshots>
    			<enabled>true</enabled>
    		  </snapshots>
            </repository>
          </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>tbsnexus</activeProfile>
    </activeProfiles>
    
    • 配置仓库镜像
    <mirror>
        <id>tb-repositories</id>
        <mirrorOf>*</mirrorOf>
        <url>http://39.100.65.160:8081/nexus/content/repositories/tb-repository/</url>
    </mirror>
    <!--配置阿里云Maven镜像-->
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    <!--配置华为云Maven镜像-->
    <mirror>
        <id>huaweicloud</id>
        <mirrorOf>*</mirrorOf>
        <url>https://mirrors.huaweicloud.com/repository/maven/</url>
    </mirror>
    

    默认的,如果本地仓库找不到依赖的构件,这时需要东西时先到Nexus上找,如果发现Nexus服务关闭后,会自动到中央仓库找,至此,已经可以私服下载jar包了

    上传jar

    • 定位到要上传的jar包的目录
    • 执行命令
    mvn deploy:deploy-file -DgroupId=com.tbtech -DartifactId=tb-tools -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=tb-tools-1.0-SNAPSHOT.jar -Durl=http://39.100.65.160:8081/nexus/content/repositories/tb-repository -DrepositoryId=tbsnexus
    
    • deploy:deploy-file表示发布独立的文件
    • groupIdartifactIdversion可根据需要设定
    • urlNexus服务器中需要上传的仓库路径
    • repositoryIdserverid必须一致
    • 上传结果
      在这里插入图片描述
      在这里插入图片描述
      上传成功后,我们只需在pom.xml中引入<dependency>就可以下载该jar包了
    <dependency>
      <groupId>com.tbtech</groupId>
      <artifactId>tb-tools</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    

    参考博客

    Maven入门:使用Nexus搭建Maven私服及上传下载jar包

    ~~ 感谢大佬

    .end

  • 相关阅读:
    Oracle SQL性能优化
    spring aop简单日志实例
    一个简单的Spring AOP例子
    jQuery的三种$()
    Mac 上的 outlook 一直让输入密码
    idea 中设置成公司规范的代码格式
    Java 中的锁——Lock接口
    TimeUnit枚举类
    Thread.join()的使用
    java线程的等待、通知机制【读书笔记】
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/12312090.html
Copyright © 2011-2022 走看看