美文网首页
分布式组件(做成依赖版)

分布式组件(做成依赖版)

作者: 蛋皮皮652 | 来源:发表于2020-10-27 17:07 被阅读0次

       

       我在做分布式组件时需要将写好的文件上传组件上传到maven私服,现在比较常用的maven私服有Artifactory搭建maven私服,Nexus搭建maven私服,Apache Ar-chiva搭建maven私服(不常用)。

     简介:

    (1)nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问.

    (2)nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据

    (3)nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用

    (4)nexus支持webDAV与LDAP安全身份认证.

    (5)nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库.

    为什么使用

    (1)节省外网带宽。

    (2)加速Maven构建。

    (3)部署第三方构件。

    (4)提高稳定性,增强控制。

    (5)降低中央仓库的负荷。

    (6)控制和审计

    (7)建立本地内部公用仓库

    (8)私服仓库的工作流程

    Nexus仓库类型介绍

    (1)hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。

    (2)proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

    (3)group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

    管理本地仓库

    (1)我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:

    (2)Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.

    (3)Snapshots:这个仓库非常的有用,它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.

    (4)3rd Party:顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。

    docker安装Maven私服nexus3步骤

    (1)查找镜像

    docker search nexus

    (2)拉取镜像

    docker pull sonatype/nexus3

    (3)启动容器

    docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 -v /etc/localtime:/etc/localtime --name nexus3   sonatype/nexus3

    # -v /home/nexus/nexus-data:/nexus-data 将数据挂载到宿主机

    ## 8081:nexus3网页端

    ## 8082:docker(hosted)私有仓库,可以pull和push(后面实现docker的时候会详细说明)

    ## 8083:docker(proxy)代理远程仓库,只能pull(后面实现docker的时候会详细说明)

    (4)查看日志

    docker logs nexus3

    (5)开放端口

    firewall-cmd --zone=public  --permanent --add-port=8081/tcp

    firewall-cmd --zone=public  --permanent --add-port=8082/tcp

    firewall-cmd --zone=public  --permanent --add-port=8083/tcp

    (6)重启防火墙

    systemctl restart firewalld

    (7)访问

    http://localhost:8081/

    初始密码为admin/admin123,但是我按照传说中的初始密码发现不正确。

    按照提示信息去执行如下步骤即可找到密码。进去之后修改密码为admin123

    创建3rd_part库,点击左侧的repository\repositories后,在右侧点击create repository。

    然后选择maven2(hosted),填写如下

    跳到首页后选择maven-public

    将3rd_part移到member中,即将33rd_part由maven-public管理,点击save

    至此,创建仓库完成,创建3rd_part管理用户,创建用户: 用户名/密码-dev/dev123

    使用dev/dev123登陆,点击upload

    填写上传jar包的信息后,点击upload

    可以看到已经上传成功

    IDE集成依赖

    cmd模式

    1.复制一份settings.xml为settings-private.xml,在settings-private.xml文件中加入节点server:

    deployment

    dev

    dev123

    2.在命令行中输入

    mvn deploy:deploy-file

    -DgroupId=com.sjing.yjyuan

    -DartifactId=fastjson-sj

    -Dversion=1.0.1

    -Dpackaging=jar

    -Dfile=E:\installed\mavenRepository\fastjson-1.2.40.jar

    -Durl=http://172.16.40.213:8081/repository/3rd_part/

    -DrepositoryId=deployment

    --settings E:\installed\mavenRepository\settings-private.xml

    其中-Durl即3rd_part仓库的地址

    -DrepositoryId即为之前server节点中的属性id的值,--settings指定maven的setting文件,即

    IDE集成环境

    在settings-private.xml中的servers节点加入

    nexus-release

    dev

    dev123

    nexus-snapshots

    dev

    dev123

    在maven工程项目nexus-upload中的pom文件中加入

    <!--上传到nexus仓库中,配合mvn deploy:deploy-->

    nexus-release

    Nexus release Repository

    <

    url>http://172.16.40.213:8081/repository/maven-releases/

    nexus-

    snapshots

    Nexus snapshots Repository

    http://172.16.40.213:8081/repository/maven-snapshots/

    然后运行mvn deploy

    可以在控制台,在nexus私服中可以看到

    当然可以在mirror那替换url

    项目中添加依赖

    我们可以去自己的本地maven仓库看看,是否已经下载下来了呢?

    ‍分布式组件的上传做成依赖就是这样做的,学会了么?喜欢的话可以微信搜索“蛋皮皮”公众号,更多干货等你哦!

    相关文章

      网友评论

          本文标题:分布式组件(做成依赖版)

          本文链接:https://www.haomeiwen.com/subject/vsmxvktx.html