介绍

Nexus Repository Manager是由Sonatype开发的一款强大的仓库管理器,用于管理软件组件和构建工件。它提供了一个集中式存储库,可以用来存储和分发各种构建工件,如JAR、WAR、Docker镜像、npm软件包等。Nexus Repository Manager有两个主要版本:Nexus Repository Manager 2和Nexus Repository Manager 3。

一些Nexus Repository Manager的主要特点包括:

  1. 存储和管理软件构建物件:Nexus允许您在一个中心位置存储和管理各种构建工件,确保团队成员可以方便地访问和共享这些工件。
  2. 安全性:Nexus提供了强大的安全功能,包括访问控制、权限管理、漏洞扫描等,以确保您的软件构建物件的安全性。
  3. 代理和缓存:Nexus可以代理远程存储库,从而加快构建过程并减少对外部存储库的依赖。它还可以缓存远程存储库中的工件,以提高访问速度。
  4. 支持多种软件包管理器:Nexus支持多种软件包管理器,包括Maven、npm、Docker、NuGet等,使其成为跨平台和多语言项目的理想选择。
  5. 用户友好的界面:Nexus提供直观的用户界面,使用户可以轻松地搜索、浏览和管理存储库中的工件。

1. 创建工作目录

$ mkdir -p /data/nexus/data
$ chmod 777 -R /data/nexus/data

编写docker-compose 文件

$ cd /data/nexus
$ vim docker-compose.yml
version: '3'
services:
  nexus3:
    image: sonatype/nexus3:3.67.0
    restart: always
    container_name: nexus3
    ports:
      - 8111:8081
      - 8112:8082
      - 8113:8083
    volumes:
      - /etc/localtime:/etc/localtime
      - ./data:/nexus-data

2. 查看 Nexus 初始密码

$ docker exec -it nexus3 /bin/sh

sh-4.4$ cat /opt/sonatype/sonatype-work/nexus3/admin.password 

3. nexus 仓库配置

3.1 设置账号密码

1712309591135.png

3.2 启用匿名访问

1712309639478.png


4. 将依赖推送至 Nexus 仓库

  • pom.xml
<distributionManagement>
  <repository>
    <id>release-nexus</id>
    <url>http://192.168.253.146:8111/repository/maven-releases/</url>
    <name>nexus私服中宿主仓库->存放/下载稳定版本的构件</name>
  </repository>
  <snapshotRepository>
    <id>snapshot-nexus</id>
    <url>http://192.168.253.146:8111/repository/maven-snapshots/</url>
    <name>nexus私服中宿主仓库->存放/下载快照版本的构件</name>
  </snapshotRepository>
</distributionManagement>
  • 需在settings.xml中设置密码
$ vim /usr/local/apache-maven-3.9.6/conf/settings.xml 
  <servers>
<server>
  <id>release-nexus</id>
  <username>admin</username>
  <password>admin@123456</password>
</server>

<server>
  <id>snapshot-nexus</id>
  <username>admin</username>
  <password>admin@123456</password>
</server>
  </servers>

4.1 推送快照依赖

  • pom.xml
    <groupId>com.gazgeek</groupId>
    <artifactId>helloworld</artifactId>
	<version>0.0.1-SNAPSHOT</version> 
$ mvn deploy

4.2 推送稳定依赖

  • pom.xml
    <groupId>com.gazgeek</groupId>
    <artifactId>helloworld</artifactId>
	<version>0.0.1</version> 
$ mvn deploy

5. 配置从 Nexus 仓库中拉取依赖

5.1 全局配置

配置maven私有源,且关闭 maven-default-http-blocker,这个maven-nexus组创建时允许匿名访问,所以拉取依赖无需配置账号密码

$ vim /usr/local/apache-maven-3.9.6/conf/settings.xml 
  <mirrors>
  <!-- 配置私有nexus仓库,因为设置了允许匿名访问,所以无需配置账号密码 -->
	<mirror>
	<id>maven-nexus</id>
	<name>Public Repositories</name>
	<url>http://192.168.253.146:8111/repository/maven-public/</url>
	<mirrorOf>*</mirrorOf>
	</mirror>

<!-- 注释默认配置
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
-->
  </mirrors>
文章作者: hzbb
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 运维小记
DevOps 自动化
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝