为何用到Maven私服?

在实际开发中,项目中可能会用到第三方的jar、内部通讯的服务接口都会打入到公司的私服中。

我们从项目实际开发来看:

  1. 一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。

  2. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地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私服的搭建的更多相关文章

  1. 基于【 Docker】五 || maven私服环境搭建

    1.Maven  Nexus私服的原理 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库.当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓 ...

  2. maven私服的搭建

    前言: 为什么要有maven私服? 当我们在公司开发时,如果每个程序员都需要连接外网去下载maven的jar包,当同时开发时,就会造成网络资源浪费,因此,maven提出了私服的概念,当公司内部程序员进 ...

  3. docker安装maven私服

    目录 一.nexus3安装 二.创建私服仓库 三.发布jar包到私服 四.引用maven私服jar包 五.参考 一.nexus3安装 1.安装镜像 docker pull sonatype/nexus ...

  4. maven学习(中)- 私服nexus搭建

    接上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本 ...

  5. maven私服nexus搭建(windows)

    1.下载nexus 地址:https://www.sonatype.com/download-oss-sonatype 下载相应版本的zip包. 2.安装nexus 下载完成后,解压到本地任意目录. ...

  6. Docker之Harbor私服的搭建及使用

    目录 0. 前置条件 1. 下载地址 2. 安装 2.1 编辑harbor.yml 2.3 安装 2.4 访问配置的域名 2.5 常用命令 2.6 测试提交镜像 0. 前置条件 安装docker # ...

  7. docker 搭建maven 私服

    # 搜索镜像 docker search nexus; #拉取nexus镜像docker pull sonatype/nexus; #运行 -id 创建守护式容器--privileged=true 授 ...

  8. Linux下搭建maven私服Nexus 3.2.1-01

    1. 私服介绍私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则, ...

  9. 掌握 Maven 私服

    前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项目服务的依赖.因此 Maven 私服就是必不可少的一环,本文主要对 Maven 私服的 ...

随机推荐

  1. kafka Enabling Kerberos Authentication

    CDK 2.0 and higher Powered By Apache Kafka supports Kerberos authentication, but it is supported onl ...

  2. display:grid

    使用grid布局 参考资料http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html flex布局还没完全用利索,但这个grid布 ...

  3. #define宏作用

    预处理器的任务 简单来讲,预处理器的任务就是执行源代码中的预处理指令,并对源代码进行相应的处理.因此,从预处理指令的类型来讲,预处理器的任务包括如下的几个部分: 将其他文件包含到当前文件中. 定义宏, ...

  4. Java自学-JDK环境变量配置

    JDK环境变量配置 分下载,配置,验证三个步骤进行JDK环境变量配置. 步骤 1 : 首先看配置成功后的效果 点WIN键->运行(或者使用win+r) 输入cmd命令 输入java -versi ...

  5. 使用Python搭建http服务器

    David Wheeler有一句名言:“计算机科学中的任何问题,都可以通过加上另一层间接的中间层解决.”为了提高Python网络服务的可移植性,Python社区在PEP 333中提出了Web服务器网关 ...

  6. JavaWeb第一天--HTML

    HTML HTML简介 HTML(Hyper TextMarkupLanguage) 超文本标记语言. 超文本: 超越了文本仅仅展示信息的功能范畴,泛指:图片.有样式的文字.超链接. 标记: 标签. ...

  7. vue使用vue-cli创建项目

    安装运行环境(node和npm) 安装vue-cli(查看是否安装成功vue -V) 安装webpack 新建项目 1.vue init webpack 项目名称 2.配置项目有关的信息(项目名称,开 ...

  8. javascript:void(0)的含义

    void关键字介绍 首先,void关键字是javascript当中非常重要的关键字,该操作符指定要计算或运行一个表达式,但是不返回值. 语法格式: void func() void(func()) 实 ...

  9. 英语hawkbillturtle玳瑁

    玳瑁(hawkbillturtle):属爬行纲,海龟科的海洋动物.一般长约0.6米,大者可达1.6米.头顶有两对前额鳞,吻部侧扁,上颚前端钩曲呈鹰嘴状:前额鳞2对:背甲盾片呈覆瓦状排列:背面的角质板覆 ...

  10. 转摘Python安装与环境变量的配置

    Python安装与环境变量的配置   python下载: Python安装包下载地址:http://www.python.org/ 根据实际的操作系统,安装合适的安装版本. Python安装: 本文以 ...