前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Sonatype Nexus Repository 3 :Maven仓库配置

如何使用Sonatype Nexus Repository 3 :Maven仓库配置

作者头像
coderidea
发布2023-09-09 08:29:37
1.5K0
发布2023-09-09 08:29:37
举报
文章被收录于专栏:coderideacoderidea

Sonatype Nexus Repository 3(Sonatype Nexus 3)是一个由Sonatype开发的仓库管理工具,用于管理和托管各种软件构件(如Maven构件、Docker镜像等)。它提供了一种集中化的方式来存储、管理和分发软件构件,以帮助团队协作和构建自动化。

Sonatype Nexus Repository 3的主要特点包括:

  1. 多种仓库类型:支持多种仓库类型,包括Maven、Docker、npm、NuGet等,以满足不同类型的项目需求。
  2. 仓库管理:允许创建托管仓库、代理仓库和组仓库,以管理构件的分发和访问。
  3. 安全性:提供强大的安全性和权限控制,以确保只有授权的用户能够访问和发布构件。
  4. 镜像和代理:支持从外部仓库代理构件,并允许设置本地镜像,提高构建性能和可靠性。
  5. 版本控制:具有版本控制功能,可追踪构件的历史和变更。
  6. 搜索和检索:提供高效的搜索和检索功能,以快速查找所需的构件。
  7. 部署和发布:允许通过Maven、Gradle等构建工具部署和发布构件。
  8. 插件生态系统:支持丰富的插件生态系统,可以扩展和定制功能。

Sonatype Nexus Repository 3是一个强大的工具,可帮助开发团队有效地管理和分发构件,提高构建流程的可靠性和效率。

下载地址

https://help.sonatype.com/repomanager3/product-information/download/download-archives---repository-manager-3

如何安装:

https://help.sonatype.com/repomanager3/installation-and-upgrades/installation-methods

配置Sonatype Nexus 3作为Maven仓库

我们将执行以下操作:

  • 创建一个用于snapshots构件的私有(托管)仓库
  • 创建一个用于releases构件的私有(托管)仓库
  • 创建一个代理仓库,指向Maven Central
  • 创建一个组仓库,以提供所有这些仓库在单一URL下访问

我建议您为每个新的仓库创建一个新的Blob存储。这样,每个仓库的数据将位于/nexus-data目录下的不同文件夹中(在Docker容器内)。但这不是必需的,它只是为了更好的组织数据。

snapshots repo

一个用于部署带有版本标签中"-SNAPSHOT"的Maven构件的仓库,例如:<version>1.0.0-SNAPSHOT</version>

创建一个新的Maven(托管)仓库,并按如下方式配置它:

releases repo

一个用于部署Maven构件的仓库,这些构件在pom.xml的版本标签末尾不带有"-SNAPSHOT",例如:

代码语言:javascript
复制
<version>1.0.0</version>

创建一个新的Maven(托管)仓库并进行如下配置:

配置代理到Maven Central仓库

一个代理仓库,用于代理从Maven Central下载的所有内容。下次下载相同的依赖项时,它将被缓存在您的Sonatype Nexus中。

创建一个新的Maven(代理)仓库并按以下方式配置它:

group repo

这将分组上述所有的仓库,并为您提供一个单一的URL,以方便配置您的客户端从仓库中下载/部署。

创建一个新的Maven(组)仓库并按以下方式配置它:

您可以根据需要创建多个仓库(例如设置多个代理到其他公共仓库),然后将它们全部分组到组仓库中。

配置Maven客户端和项目

将以下内容放入您的~/.m2/settings.xml文件中。这将配置发布到您的托管仓库的凭据,并告诉您的mvn将您的仓库用作中央仓库的镜像:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">

  <servers>
    <server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <id>central</id>
      <name>central</name>
      <url>http://your-host:8081/repository/maven-group/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

</settings>

也可以配置在项目中的pom.xml 中。

如果您只想从Sonatype Nexus下载依赖项,请将以下内容放入pom.xml文件中:

代码语言:javascript
复制
<project ...>

  ...

  <repositories>
    <repository>
      <id>maven-group</id>
      <url>http://your-host:8081/repository/maven-group/</url>
    </repository>
  </repositories>
</project>

如果您还想发布您的项目,请添加以下内容:

代码语言:javascript
复制
<project ...>

  ...

  <distributionManagement>
    <snapshotRepository>
      <id>nexus-snapshots</id>
      <url>http://your-host:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>nexus-releases</id>
      <url>http://your-host:8081/repository/maven-releases/</url>
    </repository>
  </distributionManagement>
</project>

现在,如果您在您的项目中运行以下命令:

代码语言:javascript
复制
mvn install
# or
mvn deploy

这将能发布到你配置的Sonatype Nexus 中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coderidea 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置Sonatype Nexus 3作为Maven仓库
    • snapshots repo
      • releases repo
        • 配置代理到Maven Central仓库
          • group repo
          • 配置Maven客户端和项目
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档