zoukankan      html  css  js  c++  java
  • 使用Docker 容器配置nexus3.29 私有仓库

    在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。

    默认创建在nexus安装目录下数据目录

    选择仓库类型 这里选择proxy类型如图

    配置仓库

    该仓库指定一个唯一的名称、HTTP的端口、允许交互的API等

    由于访问中央仓库有时候会比较慢,这里我添加一个阿里云的代理仓库,然后优先级放到默认中央库之前, 阿里云的maven仓库url为http://maven.aliyun.com/nexus/content/groups/public

    注意上图的 Release,nexus2不清楚,但是在nexus3中,这个库要区分是存放RELEASE稳定版本的,还是存储SNAPSHOT不稳定版本的。

    这会影响到当你使用mvn deploy命令把本地的jar或其他maven构件上传到nexus私服时,如果你的项目打包版本例如是0.0.1-SNAPSHOT,就会说不允许上传到release稳定版本库中。

    默认的这几个仓库我解释一下:

    1. maven-central: maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
    2. maven-releases: 私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy
    3. maven-snapshots: 私库快照(调试版本)jar
    4. maven-public: 仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

    Nexus默认的仓库类型有以下四种:

    1. group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
    2. hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
    3. proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径);
    4. virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);

     

     

     

    Nexus搜索页
      这个不需要登录就可以访问,用来查询jar包。支持模糊查询

    本地Maven使用私服

    安装和配置好之后,在开发中如何使用呢。可在maven的默认配置settings.xml中修改如下:

    <servers>
      <server>
        <id>maven-releases</id>  <!--对应pom文件中的id-->
        <username>admin</username>
        <password>admin457280</password>
      </server>
      <server>
        <id>aliyun-proxy</id>    <!--对应pom中的id-->
        <username>admin</username>
        <password>admin457280</password>
      </server>
      <server>
        <id>maven-snapshots</id> <!--对应pom中的id-->
        <username>admin</username>
        <password>admin457280</password>
      </server>
    </servers>

    一般,仓库的下载和部署是在pom.xml文件中的repositoriesdistributionManagement元素中定义的。然而,一般类似用户名、密码(有些仓库访问是需要安全认证的)等信息不应该在pom.xml文件中配置,这些信息可以配置在settings.xml中。

    <!--配置远程仓库(私服) -->
    <
    mirrors> <!-- 指定仓库的下载镜像。 --> <mirror> <!-- 该镜像的唯一标识符。id用来区分不同的mirror元素。 --> <id>aliyun-proxy</id> <!-- 镜像名称 --> <name>nexus repository</name> <!-- 被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo.maven.apache.org/maven2/)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 --> <mirrorOf>*</mirrorOf> <!-- 该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 --> <url>http://192.168.1.111:8081/repository/aliyun-proxy/</url> </mirror> <!--maven aliyun镜像配置 --> <mirror> <id>maven-public</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://192.168.1.111:8081/repository/maven-public/</url> </mirror> </mirrors>
    <profiles>
       <profile>  
            <id>dev</id>
            <repositories>
              <repository>
                <id>nexus</id>
                <url>http://192.168.1.111:8081/repository/maven-public/</url>
                <releases>
                  <enabled>true</enabled>
                </releases>
                <snapshots>
                  <enabled>true</enabled>
                </snapshots>
              </repository>
            </repositories>
          <pluginRepositories>
           <pluginRepository>
             <id>nexus</id>
             <name>znlearn</name>
             <url>http://192.168.1.111:8081/repository/maven-public/</url>
           </pluginRepository>
          </pluginRepositories>
      </profile>
    </profiles>

    repositories中可配置多个仓库repository(这里只配置了一个),id:唯一标识,name:自定义仓库名称,url:远程仓库地址,releases 的enable设置为true,告诉maven可以下载releases(稳定版本)的构件;snapshots 的enable 为false,即为禁止下载snapshot(开发中、不稳定)的构件
    其他仓库以供备用:


    激活的profile
    <activeProfiles>
        <!-- 要激活的profile id -->
        <activeProfile>dev</activeProfile>
    </activeProfiles>

    如果要发布自己的jar到私服,就需要修改工程的pom.xml,添加如下内容,否则什么都不用做:

    <!--发布远程部署到私服-->
    <distributionManagement>
        <repository>
            <!-- 发布到 发行版本的仓库中,也可以发布到3rd party 仓库 -->
            <id>station-release</id>
            <name>sze511-rd-Repository</name>
            <url>http://192.168.110.103:8081/repository/station-release/</url>
            <uniqueVersion>true</uniqueVersion>
        </repository>
        <!-- 发布到 快照版本的仓库,即 测试版本仓库 -->
        <snapshotRepository>
            <id>station-hosted</id>
            <name>sze511-rd-Repository</name>
            <url>http://192.168.110.103:8081/repository/station-hosted/</url>
        </snapshotRepository>
    </distributionManagement>

    将本地项目 jar 包推送至远程私服

     

    本地项目快照版本 jar 包已成功推送至nexus ,登陆至nexus管理界面查看

     至此环境成功搭建

  • 相关阅读:
    CVE-20117-111882漏洞复现及利用
    如何查看QQ坦白说来自谁
    2018 巅峰极客CTF misc writeup
    屏幕截图
    Unity中设置屏幕常亮
    面向对象设计原则
    【转】Unity资源管理原理知识(干货不嫌长)
    给指定的图片增加水印
    统计一个目录下各种文件类型及个数
    JDK 开发环境配置
  • 原文地址:https://www.cnblogs.com/lwx57280/p/14498403.html
Copyright © 2011-2022 走看看