Windows 环境搭建 Maven 私有仓库实战

引言

在Windows 10系统中搭建Maven私有库,主要涉及安装 Nexus 并进行相应配置。以下是具体步骤和方法的总结。

一、Nexus是什么?

Nexus是Sonatype公司发布的一款功能强大的仓库管理软件,常被用来搭建Maven私服,因此也有人将其称为‘Maven仓库管理器’。由于私服具有降低中央仓库负荷、节省外网带宽、提高项目稳定性等优点,因此在实际开发过程中得到了广泛应用。

Nexus分为开源版和专业版,其中开源版足以满足大部分个人和小型团队的需求,而专业版则提供了更多的企业级特性。作为一个强大的软件仓库,Nexus可以用来存储、共享和分发各种软件组件,如Java包、Ruby gems、Node.js包等,并且支持与Docker等容器技术的集成,提供企业级的安全性和可扩展性。因此,它被广泛用于企业级开发团队中,帮助他们更好地管理、共享和分发软件组件。此外,通过代理外部仓库、缓存构建和部署第三方构件等功能,Nexus可以显著提高开发团队的工作效率。

二、下载并安装Nexus

  1. 下载地址 :
  1. 下载完成后,解压文件到D盘(例如:D:\Nexus),解压文件 nexus-3.71.0-06-win64.zip

  2. 打开命令提示符PowerShell,进入Nexus的bin目录(例如:D:\Nexus\nexus-3.37.0-02-win64\bin)。

  3. 运行nexus.exe /run启动Nexus服务。

在这里插入图片描述

  1. 现如下界面表明启动成功,默认端口为8081:

如果需要修改端口号,可在配置文件(nexus-default.properties)中修改

  1. 访问Nexus Web界面:

通过浏览器访问http://localhost:8081/nexus,默认用户名和密码为admin和admin123

3.7 版本密码在文件夹 …\nexus-3.71.0-06-win64\sonatype-work\nexus3\admin.password 文件中

在这里插入图片描述

三、 创建Maven仓库

  1. 在Nexus Web界面中,点击左侧的"Repositories"。
  2. 点击"Create Repository",选择"Maven2"作为仓库类型。
    在这里插入图片描述

仓库 Type 类型说明:

仓库类型说明
proxy某个远程仓库的代理
group存放:通过 Nexus 获取的第三方 jar 包
hosted存放:本团队其他开发人员部署到 Nexus 的 jar 包

默认仓库说明:

仓库名称说明
maven-centralNexus 对 Maven 中央仓库的代理,Nexus 可以配置代理仓库来代理 Maven 中央仓库,缓存从中央仓库获取的构件,加速本地访问速度 。
maven-publicNexus 默认创建,供开发人员下载使用的组仓库,public 仓库组通常用于聚合所有存储策略为 Release 的仓库,提供一个统一的服务地址。这样,Maven 客户端可以更方便地从这个统一地址获取所需的构件,无论是来自代理仓库还是宿主仓库 。
maven-releasseNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库,要求 releasse 版本
maven-snapshotsNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库,要求 snapshots 版本

maven-public 相当于仓库总和,默认把其他 3 个仓库加进来一起对外提供服务了,另外,如果有自己建的仓库,也要加进该仓库才有用。

在这里插入图片描述

  1. 配置以下信息:
  • Repository ID:例如my-maven-repo。
  • Name:例如My Maven Repository。
  • URL:例如http://localhost:8081/repository/my-maven-repo/。
  • Policy:选择Release或Snapshot,根据需要配置。
  • 点击"Create"创建仓库。
    在这里插入图片描述

四、配置Maven项目

1. 打开Maven项目的pom.xml文件。

2. 添加以下仓库配置:


<repositories>
    <repository>
        <id>my-maven-repo</id>
        <url>http://localhost:8081/repository/my-maven-repo/</url>
    </repository>
</repositories>

3. 打开Maven的settings.xml文件。

添加以下仓库和认证配置:

<servers>
    <server>
        <id>my-maven-repo</id>
        <username>admin</username>
        <password>你的Nexus密码</password>
    </server>
</servers>

在mirrors节点下新增一个mirror节点,内容如下:

<mirror>
	<id>my-maven-repo</id>
	<mirrorOf>*</mirrorOf>
  	<name>my local maven</name>
	<url>http://localhost:8081/repository/my-maven-repo/</url>
</mirror>

五、部署Maven项目到Nexus

在Maven项目的根目录下打开命令提示符或PowerShell。
运行以下命令部署项目到Nexus:

mvn clean deploy -DaltDeploymentRepository=my-maven-repo::default::http://localhost:8081/repository/my-maven-repo/

六、手动上传本地 jar 到仓库

在这里插入图片描述
在这里插入图片描述

七、Springboot 项目实战应用

1. 新建 maven 配置文件 settings_local.xml

<?xml version="1.0" encoding="utf-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- 设置本地仓库的路径为 D:/Development/maven2/repository -->  
  <localRepository>D:/Development/maven2/repository</localRepository>  
  <!-- 插件组配置,可以指定插件查找的额外组标识符 -->  
  <pluginGroups> 
    <!-- 插件组示例,未激活 -->  
    <!--<pluginGroup>com.your.plugins</pluginGroup>--> 
  </pluginGroups>  
  <!-- 代理服务器配置,当前为空 -->  
  <proxies></proxies>  
  <!-- 服务器配置,用于存储需要认证的仓库信息 -->  
  <servers> 
    <!-- 定义一个服务器,id 为 my-maven-repo,包含用户名和密码 -->  
    <server> 
      <id>my-maven-repo</id>  
      <username>admin</username>  
      <password>admin@123</password> 
    </server>  
    <!-- 其他服务器配置,可能用于不同的仓库 -->  
    <server> 
      <id>maven-release</id>  
      <username>admin</username>  
      <password>admin@123</password> 
    </server>  
    <server> 
      <id>maven-snapshots</id>  
      <username>admin</username>  
      <password>admin@123</password> 
    </server> 
  </servers>  
  <!-- 镜像配置,用于定义远程仓库的镜像 -->  
  <mirrors> 
    <!-- 定义一个镜像,id 为 my-maven-repo,镜像所有仓库(*),使用本地仓库作为中央仓库的备份 -->  
    <mirror> 
      <id>my-maven-repo</id>  
      <mirrorOf>*</mirrorOf>  
      <name>local maven</name>  
      <!-- 镜像的 URL 指向本地 Nexus 仓库 -->  
      <url>http://localhost:8081/repository/my-maven-repo/</url> 
    </mirror>  
    <!-- 阿里云镜像,用于加速中央仓库的访问 -->  
    <mirror> 
      <id>aliyunmaven</id>  
      <mirrorOf>*</mirrorOf>  
      <name>阿里云公共仓库</name>  
      <!-- 阿里云镜像的 URL -->  
      <url>https://maven.aliyun.com/repository/public</url> 
    </mirror> 
  </mirrors>  
  <!-- Maven 配置文件中的配置文件,用于定义仓库和插件仓库 -->  
  <profiles> 
    <!-- 定义一个配置文件,id 为 my-maven-repo,包含一个仓库配置 -->  
    <profile> 
      <id>my-maven-repo</id>  
      <repositories> 
        <!-- 定义一个仓库,使用本地 Nexus 仓库作为中央仓库的备份 -->  
        <repository> 
          <!-- 仓库 id 应唯一,这里与镜像 id 相同,可能需要更改 -->  
          <id>central</id>  
          <!-- 仓库 URL 指向本地 Nexus 仓库 -->  
          <url>http://localhost:8081/repository/maven-public/</url>  
          <releases> 
            <enabled>true</enabled> 
          </releases>  
          <snapshots> 
            <enabled>true</enabled> 
          </snapshots> 
        </repository> 
      </repositories> 
    </profile> 
  </profiles>  
  <!-- 激活配置文件,这里激活了本地仓库作为中央仓库备份的配置 -->  
  <activeProfiles> 
    <activeProfile>my-maven-repo</activeProfile> 
  </activeProfiles> 
</settings>

2. 项目中修改 maven 配置

在这里插入图片描述

3. 项目工程 pom 文件 配置 maven

<!-- 配置Maven的分发管理,指定发布版本和快照版本的仓库 -->  
<distributionManagement>  
    <!-- 发布版本(release)的仓库配置 -->  
    <repository>  
        <id>maven-release</id> <!-- 仓库的唯一标识符 -->  
        <name>maven-release</name> <!-- 仓库的名称 -->  
        <url>http://localhost:8081/repository/maven-release/</url> <!-- 仓库的URL地址 -->  
    </repository>  
    <!-- 快照版本(snapshot)的仓库配置 -->  
    <snapshotRepository>  
        <id>maven-snapshots</id> <!-- 快照版本的仓库唯一标识符 -->  
        <name>maven-snapshots</name> <!-- 快照版本的仓库名称 -->  
        <url>http://localhost:8081/repository/maven-snapshots/</url> <!-- 快照版本的仓库URL地址 -->  
    </snapshotRepository>  
</distributionManagement>  
  
<!-- 配置Maven的仓库列表,用于项目依赖的查找 -->  
<repositories>  
    <!-- 阿里云Maven公共仓库配置,仅启用发布版本依赖的下载 -->  
    <repository>  
        <!-- 发布版本依赖的下载配置 -->  
        <releases>  
            <enabled>true</enabled> <!-- 启用发布版本依赖的下载 -->  
        </releases>  
        <!-- 快照版本依赖的下载配置,此处禁用 -->  
        <snapshots>  
            <enabled>false</enabled> <!-- 禁用快照版本依赖的下载 -->  
            <updatePolicy>never</updatePolicy> <!-- 更新策略设置为永不更新 -->  
        </snapshots>  
        <id>aliyunmaven</id> <!-- 仓库的唯一标识符 -->  
        <url>https://maven.aliyun.com/repository/public</url> <!-- 仓库的URL地址 -->  
    </repository>  
  
    <!-- 本地Maven私有仓库配置,同时启用发布版本和快照版本依赖的下载 -->  
    <repository>  
        <!-- 发布版本依赖的下载配置 -->  
        <releases>  
            <enabled>true</enabled> <!-- 启用发布版本依赖的下载 -->  
        </releases>  
        <!-- 快照版本依赖的下载配置,此处启用 -->  
        <snapshots>  
            <enabled>true</enabled> <!-- 启用快照版本依赖的下载 -->  
        </snapshots>  
        <id>my-maven-repo</id> <!-- 仓库的唯一标识符 -->  
        <url>http://localhost:8081/repository/maven-public/</url> <!-- 仓库的URL地址 -->  
    </repository>  
</repositories>

参考:https://cloud.tencent.com/developer/article/2110916
推荐: https://developer.aliyun.com/article/1328445
https://blog.csdn.net/weixin_46228563/article/details/139567976

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值