4.Docker Compose 部署 Nexus

什么是 Nexus

Nexus 是一个强大的 Maven 仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。2016 年 4 月 6 日 Nexus 3.0 版本发布,相较 2.x 版本有了很大的改变

  • 对低层代码进行了大规模重构,提升性能,增加可扩展性以及改善用户体验。
  • 升级界面,极大的简化了用户界面的操作和管理。
  • 提供新的安装包,让部署更加简单。
  • 增加对 Docker, NeGet, npm, Bower 的支持。
  • 提供新的管理接口,以及增强对自动任务的管理。

部署 Nexus

我们使用 Docker 来安装和运行 Nexus,docker-compose.yml 配置如下:

  1. version: ‘3.1‘
  2. services:
  3.  nexus:
  4.    restart: always
  5.    image: sonatype/nexus3
  6.    container_name: nexus
  7.  ports:
  8.    - 80:8081
  9.  volumes:
  10.    - data:/nexus-data
  11.  volumes:
  12.    data:

验证安装是否成功

注意: 新版本密码在 cat /var/lib/docker/volumes/nexus_data/_data/admin.password

Maven 仓库介绍

代理仓库(Proxy Repository)

  • 第三方仓库

    • maven-central
    • nuget.org-proxy
  • 版本策略(Version Policy)
    • Release: 正式版本
    • Snapshot: 快照版本
    • Mixed: 混合模式
  • 布局策略(Layout Policy)
    • Strict: 严格
    • Permissive: 宽松

宿主仓库(Hosted Repository)

  • 存储本地上传的组件和资源的

    • maven-releases
    • maven-snapshots
    • nuget-hosted
  • 部署策略(Deployment Policy)
    • Allow Redeploy: 允许重新部署
    • Disable Redeploy: 禁止重新部署
    • Read-Only: 只读

仓库组(Repository Group)

通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包

  • maven-public
  • nuget-group

在项目中使用 Nexus

配置认证信息

在 Maven settings.xml 中添加 Nexus 认证信息 (servers 节点下)

  1. <server>
  2.  <id>nexus-releases</id>
  3.  <username>admin</username>
  4.  <password>admin123</password>
  5. </server>
  6. <server>
  7. <id>nexus-snapshots</id>
  8. <username>admin</username>
  9. <password>admin123</password>
  10. </server>

Snapshots 与 Releases 的区别

  • nexus-releases: 用于发布 Release 版本
  • nexus-snapshots: 用于发布 Snapshot 版本(快照版)

Release 版本与 Snapshot 定义

  1. Release: 1.0.0/1.0.0-RELEASE
  2. Snapshot: 1.0.0-SNAPSHOT
  • 在项目 pom.xml 中设置的版本号添加 SNAPSHOT 标识的都会发布为 SNAPSHOT 版本,没有 SNAPSHOT 标识的都会发布为 RELEASE 版本。
  • SNAPSHOT 版本会自动加一个时间作为标识,如:1.0.0-SNAPSHOT 发布后为变成 1.0.0-SNAPSHOT-20180522.123456-1.jar

配置自动化部署

在 pom.xml 中添加如下代码

  1. <distributionManagement>
  2.  <repository>
  3.    <id>nexus-releases</id>
  4.    <name>Nexus Release Repository</name>
  5.    <url>http://127.0.0.1:8081/repository/maven-releases/</url>
  6.  </repository>
  7.  <snapshotRepository>
  8.    <id>nexus-snapshots</id>
  9.    <name>Nexus Snapshot Repository</name>
  10.    <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
  11.  </snapshotRepository>
  12. </distributionManagement>

注意事项

  • ID 名称必须要与 settings.xml 中 Servers 配置的 ID 名称保持一致
  • 项目版本号中有 SNAPSHOT 标识的,会发布到 Nexus Snapshots Repository, 否则发布到 Nexus Release Repository,并根据 ID 去匹配授权账号

部署到仓库

  1. mvn deploy

配置代理仓库

  1. <repositories>
  2.   <repository>
  3.     <id>nexus</id>
  4.     <name>Nexus Repository</name>
  5.     <url>http://127.0.0.1:8081/repository/maven-public/</url>
  6.     <snapshots>
  7.      <enabled>true</enabled>
  8.     </snapshots>
  9.     <releases>
  10.       <enabled>true</enabled>
  11.     </releases>
  12.  </repository>
  13. </repositories>
  14. <pluginRepositories>
  15.   <pluginRepository>
  16.    <id>nexus</id>
  17.    <name>Nexus Plugin Repository</name>
  18.    <url>http://127.0.0.1:8081/repository/maven-public/</url>
  19.    <snapshots>
  20.      <enabled>true</enabled>
  21.    </snapshots>
  22.    <releases>
  23.      <enabled>true</enabled>
  24.    </releases>
  25.   </pluginRepository>
  26. </pluginRepositories>

扩展阅读

手动上传第三方依赖

Nexus 3.1.x 开始支持页面上传第三方依赖功能,以下为手动上传命令

  1. # 如第三方JAR包:aliyun-sdk-oss-2.2.3.jar
  2. mvn deploy:deploy-file
  3. -DgroupId=com.aliyun.oss
  4. -DartifactId=aliyun-sdk-oss
  5. -Dversion=2.2.3
  6. -Dpackaging=jar
  7. -Dfile=D:\aliyun-sdk-oss-2.2.3.jar
  8. -Durl=http://127.0.0.1:8081/repository/maven-3rd/
  9. -DrepositoryId=nexus-releases

注意事项

  • 建议在上传第三方 JAR 包时,创建单独的第三方 JAR 包管理仓库,便于管理有维护。(maven-3rd)
  • -DrepositoryId=nexus-releases 对应的是 settings.xml 中 Servers 配置的 ID 名称。(授权)

原文地址:https://www.cnblogs.com/xianquan/p/12369221.html

时间: 2024-11-11 13:30:58

4.Docker Compose 部署 Nexus的相关文章

使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101111611 在上面已经实现部署Nexus后,初次登录的默认账户密码: admin admin123 但是在进行登录时却提示 密码不正确后者没权限,根据提示密码文件的位置在nexus-data/admin.password下. 因为上面在docker-compose.yml文件

使用Docker Compose 部署Nexus后提示:Unable to create directory /nexus-data/instance

场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101111611 在上面部署好Nexus后,启动后日志提示: Unable to create directory /nexus-data/instance 注: 博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程

Docker Compose部署Nexus3时的docker-compose,yml代码

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

Docker(八)用docker compose部署服务

用docker compose部署服务 docker compose可以方便我们快捷高效地管理容器的启动.停止.重启等操作,它类似linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像.数据卷.网络模式.监听端口等信息.我们可以在一个compose文件中定义一个多容器的应用,然后通过该compose来启动这个应用. 下载安装docker-compose # curl -L https://github.com/docker/compose/release

使用Docker Compose部署SpringBoot应用

使用Docker Compose部署SpringBoot应用 原创: 梦想de星空 macrozheng 6月19日 Docker Compose是一个用于定义和运行多个docker容器应用的工具.使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了. 安装 下载Docker Compose: curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/doc

Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

使用docker compose部署服务

谈到微服务的话题,技术上我们往往会涉及到多服务.多容器的部署与管理. Docker 有三个主要的作用:Build, Ship和Run.使用docker compose我们可以在Run的层面解决很多实际问题,如:通过创建compose(基于YUML语法)文件,在这个文件上面描述应用的架构,如使用什么镜像.数据卷.网络.绑定服务端口等等,然后再用一条命令就可以管理所有的服务(如启动.停止.重启.日志监控等等). 本文通过发布3个APP(App1,App2,App3),来演示Docker在服务发布.网

阿里云上Docker Compose部署wordpress

先上官方文档: https://docs.docker.com/compose/wordpress/ 我的环境: [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-123.9.3.el7.x86_64 可以使用Docker Compose可以利用容器,在隔离环境下轻松运行WordPress. 1.安装C

Docker Compose 部署Nginx服务实现负载均衡

Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用.docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过image 指令指定镜