ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux使用docker搭建maven私有仓库

2021-08-06 22:31:06  阅读:302  来源: 互联网

标签:nexus maven 仓库 nexus3 Linux 10.10 docker


引言

在实际开发工作中,通常需要搭建maven私有仓库,今天就教大家如何搭建一套maven的私有仓库

Nexus介绍

Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

安装docker

请参考笔者另一篇文章————物理机安装Centos系统

docker中安装nexus3

1. 拉取镜像

##在之前可以通过docker search nexus  命令搜索一下docker公有库在的 nexus相关的镜像
docker pull sonatype/nexus3

2. 建立数据储存文件夹

##建立数据存放文件夹,用于docker中nexus的数据与本地物理机映射
mkdir -p /usr/local/nexus3/nexus-data
##更改权限
chown 777 /usr/local/nexus3/nexus-data

3. 安装并运行容器

docker run -d -p 8081:8081 --name docker-nexus3 -v /usr/local/nexus3/nexus-data:/nexus-data sonatype/nexus3

安装完成

通过web访问管理端(记得配置防火墙):http://10.10.10.10:8081/

配置Nexus

密码配置

进入Nexus3主页后,点击右上角“Sign in”

提示输入密码,并告知你的密码储存位置
Your admin user password is located in /nexus-data/admin.password on the server.
因为docker中nexus3的数据储存位置与本地物理机建立了映射关系,所有在物理机上的地址应该是
/usr/local/nexus3/nexus-data/admin.password

配置阿里云代理仓库

  1. 新建仓库(Create repository)
  2. 选择maven2(proxy)
  3. 填写仓库名称——maven-aliyun,并填入仓库url http://maven.aliyun.com/nexus/content/groups/public
  4. 将创建的maven-aliyun放入到maven-public中

创建项目私有库

  1. 创建两个仓库(使用maven2(hosted)类型的库),分别选择Snapshot 和 Release,命名为(java-snapshout 和 java-release)
  2. 创建一个Group类型仓库,将java-release和之前创建的阿里代理库添加其为成员,当客户端拉取jar包的时候,会从阿里云和私有的release库中拉取(命名为java-group)

创建用户

  1. 创建角色(develop),并分配nx-all权限
  2. 创建用户(test),并授予develop角色

本地使用

修改本地maven配置文件(conf/setting.xml)

1.servers节点下添加以下内容(username和password为刚刚在nexus3中添加的用户和其密码)

    <server>
      <id>nexus-xu</id>
      <username>test</username>
      <password>123456</password>
    </server>
	<server>
      <id>releases</id>  <!--对应pom.xml的id=releases的仓库-->
      <username>test</username>
      <password>123456</password>
    </server>
     <server>
      <id>snapshots</id> <!--对应pom.xml中id=snapshots的仓库-->
      <username>test</username>
      <password>123456</password>
    </server>

2.mirrors节点下添加以下内容

    <mirror>
        <id>nexus-xu</id>//对应上面的用户名和密码
        <name>internal nexus repository</name>
        <!--镜像采用配置好的组的地址-->
        <url>http://10.10.10.10:8081/repository/java-group/</url>
        <mirrorOf>!internal.repo,*</mirrorOf>
    </mirror>

项目中发布

在pom中的project节点下配置如下内容

    <distributionManagement>
        <repository>
            <!--id对应着maven的setting.xml中的用户账户-->
            <id>releases</id>
           <!--   如果没有写xxx-SNAPSHOUT,默认发布到release     -->
            <url>http://10.10.10.10:8081/repository/java-release/</url>
        </repository>

        <snapshotRepository>
            <id>snapshots</id>
            <url>http://10.10.10.10:8081/repository/java-snapshot/</url>
        </snapshotRepository>
    </distributionManagement>

标签:nexus,maven,仓库,nexus3,Linux,10.10,docker
来源: https://www.cnblogs.com/yanchuanbin/p/15107979.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有