Docker中Maven私服的搭建
为何用到Maven私服?
在实际开发中,项目中可能会用到第三方的jar、内部通讯的服务接口都会打入到公司的私服中。
我们从项目实际开发来看:
一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。
为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的符合。

如上摘抄自私服服务器架设,如下为详细步骤:
1、下载一个nexus3的镜像
docker pull sonatype/nexus3

2、将容器内部/var/nexus-data挂载到主机/root/nexus-data目录
docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
通过 docker ps -a 查看容器启动情况

验证,通过id查看容器的详细信息,输出如下ip地址。
docker inspect 容器id

紧接着访问以下这个地址试一下:curl 127.17.0.2:8081

如果启动失败,可关闭防火墙再试一下:
systemctl stop firewalld.service
ok,启动后浏览器访问一下 http://ip:8081

至此,私服搭建成功。
默认登陆账号 admin admin123

注意,这个时候你可能会遇到如下这个错误:
Incorrect username or password, or no permission to use the application.

maven私服登录的时候默认是不能使用明文密码,要使用密文密码,一般在你创建容器的目录下,比如 root/nexus-data/admin.password ,注意,需要进入容器中找,见下方指令与图:

docker exec -it c2101070de57 bash
bash-4.2$ cd /nexus-data/
bash-4.2$ cat admin.password
d62fa667-a22b-41db-a14a-6aa6f793f4fbbash-4.2$
去掉后面的 bash-4.2$,d62fa667-a22b-41db-a14a-6aa6f793f4fb 即为密码。
重新登陆后,会提示你重设密码:

3、创建maven仓库
上传maven私服之前我们先,创建个仓库

选择maven2(hosted)

填写仓库信息:

创建用户:

填写基本信息

创建好账户后就可以在右上角切换账户了。
接着就是配置本地 maven > conf 了,找到自己本机的 maven conf 下的 setting.xml 文件,添加如下信息:

注意是 services 节点下:
<services>
<server>
<id>ttyy</id>
<username>ttyy</username>
<password>ttyy</password>
</server>
</services>
4、如何将架包上传到maven私服
创建一个普通的 maven 项目,配置 pom.xml 如下:
<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
<!--指定仓库地址 -->
<distributionManagement>
<repository>
<!--此名称要和.m2/settings.xml中设置的ID一致 -->
<id>ttyy</id>
<url>http://192.168.10.130:8081/repository/ttyy-release/</url>
</repository>
</distributionManagement>
<build>
<plugins>
<!--发布代码Jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<!--发布源码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
项目命令行中执行如下指令:
mvn deploy

发布成功后,如何搜索呢?如下图:

发布后如何使用呢,相信很多小伙伴肯定用过阿里云的私服,一样的道理啦:
<dependencies>
<dependency>
<groupId>club.sscai</groupId>
<artifactId>ttyy-springboot</artifactId>
<version>1.0-RELEASE</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>ttyy</id>
<url>http://192.168.10.130:8081/repository/ttyy-release/</url>
</repository>
</repositories>
我创建了一个java相关的公众号,用来记录自己的学习之路,感兴趣的小伙伴可以关注一下微信公众号哈:niceyoo

Docker中Maven私服的搭建的更多相关文章
- 基于【 Docker】五 || maven私服环境搭建
1.Maven Nexus私服的原理 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库.当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓 ...
- maven私服的搭建
前言: 为什么要有maven私服? 当我们在公司开发时,如果每个程序员都需要连接外网去下载maven的jar包,当同时开发时,就会造成网络资源浪费,因此,maven提出了私服的概念,当公司内部程序员进 ...
- docker安装maven私服
目录 一.nexus3安装 二.创建私服仓库 三.发布jar包到私服 四.引用maven私服jar包 五.参考 一.nexus3安装 1.安装镜像 docker pull sonatype/nexus ...
- maven学习(中)- 私服nexus搭建
接上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本 ...
- maven私服nexus搭建(windows)
1.下载nexus 地址:https://www.sonatype.com/download-oss-sonatype 下载相应版本的zip包. 2.安装nexus 下载完成后,解压到本地任意目录. ...
- Docker之Harbor私服的搭建及使用
目录 0. 前置条件 1. 下载地址 2. 安装 2.1 编辑harbor.yml 2.3 安装 2.4 访问配置的域名 2.5 常用命令 2.6 测试提交镜像 0. 前置条件 安装docker # ...
- docker 搭建maven 私服
# 搜索镜像 docker search nexus; #拉取nexus镜像docker pull sonatype/nexus; #运行 -id 创建守护式容器--privileged=true 授 ...
- Linux下搭建maven私服Nexus 3.2.1-01
1. 私服介绍私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则, ...
- 掌握 Maven 私服
前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项目服务的依赖.因此 Maven 私服就是必不可少的一环,本文主要对 Maven 私服的 ...
随机推荐
- URL中出现了%E2%80%8E(Zero-Width Space)
下面两个url地址,看起来是一样的,但是粘贴到记事本里会发现一个多出了很长的空格 url: '/secure/Dishes/GetList', url: '/secure/Dishes/GetLis ...
- English--动名词
English|动名词 开始动名词的学习,代表着在长难句的征途上又向前迈出了一步. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用 ...
- Ubuntu Docker搭建GitLab以及常规配置使用
安装启动实例 1.首先创建一个目录用于存放配置 sudo docker pull docker.io/gitlab/gitlab-ce sudo mkdir -p /root/docker/gitla ...
- MyBatis系列(三) MyBatis 配置文件
一.properties 此标签的主要作用是引用配置文件,以数据源来举例. 新建mybatis-confing.properties配置文件 mybatis-confing.properties dr ...
- <More Effective C#: 改善C#代码的50个有效方法>中文版翻译答疑
最近, 有一本很赞的.NET技术书中文版出版了 - <More Effective C#: 改善C#代码的50个有效方法>. 从广州\西安\长沙\上海等各地.NET俱乐部都收到反馈, ...
- java面向对象的基本概念
面向对象的基本概念 这里先介绍面向对象程序设计的一些关键概念,并开始使用类,你需要学习一些术语,我们尽量用比较浅显的语言来介绍,因为这些内容都比较重要,所以希望大家好好好理解. 一.什么是对象和面向对 ...
- java中Math类
Math类 Math类是一个很有用的数学帮助类,使用也非常简单,这个类比较特殊,首先他和String类一样都是用final修饰,所以不能有子类,还有就是它的构造方法是私有的,也就是我们不能通过new的 ...
- .NET Core解析DNS域名或主机名的方法
在.NET Core中我们可以用System.Net.Dns类来解析域名或主机名的IP地址,我们新建一个.NET Core控制台项目,写入下面代码: using System; using Syste ...
- 好用的数据库字典查看工具SQLToolbelt
工作中经常为诸多的陌生或没有任何表或者字段说明或者文档庞大数据库和数据库表所烦恼,有以下场景: 1.新进入一家公司,开始接触新的项目,领导给你一大堆文档,在不了解具体逻辑的情况下,除了项目的结构,能让 ...
- 新版GRANAFA K8S插件 K8S NODE 图表不显示问题解决方法
原文:https://www.wchao.site/archives/granafa-k8s 其他参考:https://blog.csdn.net/bbwangj/article/details/82 ...