引言

在实际开发工作中,通常需要搭建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>

Linux使用docker搭建maven私有仓库的更多相关文章

  1. 实战maven私有仓库三部曲之三:Docker下搭建maven私有仓库

    本章是<实战maven私有仓库>系列的第三篇,在前两章中,我们先在linux搭建maven私有仓库,然后在开发环境使用此仓库,本章我们在docker下快速搭建maven私有仓库,然后像前面 ...

  2. 安装Maven并搭建Maven私有仓库

    一.说明 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.我们在进行Java代码开发的时候,Eclipse+Maven+Jetty是一个十 ...

  3. 在 Docker 搭建 Maven 私有库

    在 Docker 搭建 Maven 私有库 小引 If you are developing software without a repository manager you are likely ...

  4. 使用nexus3.10搭建maven私有仓库

    使用nexus3.10搭建maven私有仓库-----详见如下链接-- --此贴用于笔记 https://blog.csdn.net/vipbupafeng/article/details/80232 ...

  5. docker 搭建本地私有仓库

    1.使用registry镜像创建私有仓库 安装docker后,可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境: docker run -d -p : registry: 这将 ...

  6. Docker学习笔记六:Docker搭建企业级私有仓库

    前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共 ...

  7. 使用verdaccio+docker搭建npm私有仓库以及使用

    公司内部前端组件或库的共享等,搭建一个npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习 前置条件 一台电脑 可以联网 一.安装d ...

  8. Nexus 搭建maven 私有仓库

    nexus如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如 ...

  9. Nexus搭建Maven私有仓库

    原文:http://blog.csdn.net/rickyit/article/details/54927101 前言 Nexus Repository Manager is a Javaapplic ...

  10. 基于Docker搭建pypi私有仓库

    一.搭建 1.准备htpasswd.txt文件 该文件内容包含上传包至仓库时验证的用户名和密码 pip install htpasswd htpasswd -sc htpasswd.txt <u ...

随机推荐

  1. WPF 对接 Vortice 调用 D2D 使用 IWICBitmap 离屏渲染

    通过 Vortice 库可以使用非常底层的方式调用到 Direct2D1 进行渲染,本文将使用 D2D 离屏渲染到 IWICBitmap 上,再使用一点点反射黑科技,直接将此 IWICBitmap 对 ...

  2. 2019-11-29-dotnet-remoting-使用事件

    title author date CreateTime categories dotnet remoting 使用事件 lindexi 2019-11-29 10:20:1 +0800 2018-2 ...

  3. JS代码优化小技巧

    下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 [基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完 ...

  4. 什么是SQL 语句中相关子查询与非相关子查询

    1.什么是SQL子查询 要理解相关子查询和非相关子查询,我们得首先理解什么是子查询,子查询是指在一个查询语句中嵌套的另一个查询语句. 子查询可以嵌套在其他查询语句中,如 SELECT.INSERT.U ...

  5. kali 忘记账户密码

    kali 忘记账户密码 重启 kali 虚拟机,在开始界面不需要选择,按 e 键 找到 Linux 开头的行,将 ro 处及该行后面的字符替换为:rw init=/bin/bash 按 F10 进入命 ...

  6. 04. rails入门学习 创建控制器

    学习视频 https://www.bilibili.com/video/BV1RJ411W7N3?t=49&p=7 一. 启动rails 启动 cd circles/ #到circles的项目 ...

  7. Swift中的Tuple类型

    Swift中的Tuple类型可以包含任何值,并且这些值的类型可以互相不一样.Tuple本身比较简单,需要记得也就是访问Tuple的方式. 使用变量名访问 let http404Error = (404 ...

  8. apisix~升级原始插件的方法

    扩展apisix原始插件 当apisix提供的插件不能满足我们要求时,我们可能需要将它的plugin进行个性化扩展,例如一个jwt认证插件jwt-auth,它本身具有验证jwt有效性功能,支持rs25 ...

  9. 『手撕Vue-CLI』处理不同指令

    前言 在上一篇『手撕Vue-CLI』添加自定义指令中,已经实现了自定义指令的添加,但是指令还是比较简单的,只是简单的打印一句话,那么在实际运用场景中,可能会有更多的需求,比如可能需要在指令中传递参数, ...

  10. linux sort命令的重要用法:按分隔符/字母/数字/月份进行排序

    1.指定分隔符,以某一列进行排序并输出 #-t 指定一个分隔符 #-k 后面跟数字,指定按第几列进行排序 #-r 反序排序(升序变成降序) #按":"做分隔符,以第3列,也就是用户 ...