从零开始:Nexus私服搭建与Maven仓库配置的完全指南

 一、引言

使用Nexus搭建私服有很多好处,其中最主要的原因是可以控制构件的访问和部署。如果没有Nexus私服,我们所需的所有构件都需要通过Maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从Maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。而使用Nexus搭建私服后,只需要在私服上进行一次下载,就可以在整个团队中使用,大大提高了效率 。

此外,Nexus还具有很多其他优点,例如占用内存小、具有基于ExtJs得操作界面、使用基于Restlet的完全REST API支持代理仓库、宿主仓库和仓库组、基于文件系统,不需要依赖数据库、支持仓库管理、支持构件搜索、支持在界面上上传构件等等 。

二、Nexus私服搭建

2.1.Nexus简介

Nexus是Sonatype公司的一个产品,是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。它主要用于搭建公司内部的Maven私服,以便在团队中共享和使用依赖项。

Nexus私服有很多好处,例如:

  1. 加速构建;
  2. 节省带宽;
  3. 节省中央Maven仓库的带宽;
  4. 稳定(应付一旦中央服务器出问题的情况);
  5. 控制和审计;
  6. 能够部署第三方构件;
  7. 可以建立本地内部仓库;
  8. 可以建立公共仓库。

2.2.下载和安装Nexus

Nexus官网https://help.sonatype.com/repomanager3/product-information/download

根据自己的系统下载对应版本即可 

2.2.1.启动Nexus

找到安装包路径
你的文件目录\nexus-3.20.1-01\bin

 在打开的黑窗口命令操作下输入nexus.exe  /run

 看到如下字样,则表启动成功

2.2.2.访问Nexus

不知道你的nexus访问地址?没关系,我教你。
你的文件目录\nexus-3.20.1-01\etc\nexus-default.properties
在这里是你的nexus配置文件

application-port=访问Nexus端口号(默认8081)
application-host=访问Nexus的ip地址(默认localhost本地ip)
所以你的访问路径就是 http://localhost:8081 

看到如下图则表示启动成功

2.2.3.登录Nexus

账号是admin,密码是你的文件目录\nexus-3.20.1-01\etc\sonatype-work\nexus3\admin.password

提示:我这里已经修改过了密码,所以admin.password就消失了(因为是临时的)

打开文件,直接复制密码登录即可,登录成功之后会让你再输入一次密码,这是修改密码的步骤,以后将用这个密码登录Nexus。

三、Maven仓库配置

3.1.Maven简介

Maven是一个基于Java的项目管理工具(POM项目对象模型),它可以帮助开发人员自动化构建、测试和部署Java项目。Maven通过一个中央仓库来管理项目依赖,可以自动下载所需的依赖库,并且可以自动生成项目的构建脚本。使用Maven可以大大简化Java项目的构建和管理过程,提高开发效率和项目质量。

小贴士:什么是自动化构建?

自动化构建是指利用工具或脚本来自动执行项目构建过程的一种方法。在软件开发中,构建是将源代码转换为可执行软件的过程,包括编译、链接、打包等操作。传统上,构建过程需要手动执行,开发人员需要逐步执行一系列命令或操作来完成构建。而自动化构建通过使用构建工具或脚本,将这些操作自动化执行,减少了手动操作的繁琐和错误,提高了构建的效率和一致性。

自动化构建可以实现以下功能:

  1. 编译源代码:将源代码转换为可执行的二进制文件。
  2. 依赖管理:自动下载和管理项目所需的依赖库。
  3. 测试:自动执行单元测试、集成测试等测试过程。
  4. 打包:将编译后的代码打包成可部署的软件包。
  5. 文档生成:自动生成项目文档。
  6. 部署:自动将构建好的软件包部署到目标环境。

通过自动化构建,开发人员可以节省时间和精力,减少人为错误,提高软件开发的效率和质量。

3.2.下载和安装Maven

跟多细节请移步我所写的Maven安装与配置教程

Maven安装与eclipse配置和创建Maven项目教程【史上最详细】http://t.csdn.cn/NbNDK

四、使用Nexus作为Maven仓库

4.1.打包上传Jar

①找到maven安装目录
文件路径/maven/版本号/libexec/conf/settings.xml

 ②servers节点

        <server><!-- 发布版本-->
             <id>nexus</id> <!-- 随意填写,但项目中repository的id得与这里一致-->
              <username>admin</username> <!-- 账户-->
           <password>admin123</password>  <!-- 密码-->
        </server>
        <server><!-- 发布版本-->
      	   <id>nexus-releases</id> <!-- 随意填写,但项目中repository的id得与这里一致-->
       	   <username>admin</username> <!-- 账户-->
           <password>admin123</password>  <!-- 密码-->
        </server>
        <server><!-- 发布版本-->
             <id>nexus-snapshots</id> <!-- 随意填写,但项目中repository的id得与这里一致-->
              <username>admin</username> <!-- 账户-->
           <password>admin123</password>  <!-- 密码-->
        </server>

 ③mirrors节点

    <mirror>
      <id>nexus</id>
      <!--表示访问哪些工厂时需要使用镜像-->
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>

URL需要去到Nexus网站自行拷贝

 这里最好还是加上一个阿里云的镜像

 <!-- 阿里云镜像-->
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>        
</mirror>
<mirror>  
 <id>alimaven</id>  
 <mirrorOf>central</mirrorOf>  
 <name>aliyun maven</name>  
 <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>  
</mirror> 

这里以idea为例子,其他开发工具大同小异

④pom.xml配置你的Nexus仓库地址信息

  <!-- 本地nexus私有库-->
  <distributionManagement>
    <snapshotRepository>
      <id>snapshots</id>
      <name>snapshots</name>
      <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>releases</id>
      <name>release</name>
      <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
  </distributionManagement>

 URL也是一样需要去到Nexus网站自行拷贝

⑤在IDEA的pom.xml处右击➡Run Maven➡deploy

看到BUILD SUCCESS字样则代表上传成功。

4.2.引用Nexus库jar

①找到maven安装目录
文件路径/maven/版本号/libexec/conf/settings.xml

②profiles节点

            <profile>
              <!--profile 的 id-->
              <id>nexus</id>
              <repositories>
                  <repository>
                      <!--仓库 id,repositories 可以配置多个仓库,保证 id 不重复-->
                      <id>nexus</id>
                      <!--仓库地址,即 nexus 仓库组的地址-->
                      <url>http://localhost:8081/repository/maven-public/</url>
                      <!--是否下载 releases 构件-->
                      <releases>
                          <enabled>true</enabled>
                      </releases>
                      <!--是否下载 snapshots 构件-->
                      <snapshots>
                          <enabled>true</enabled>
                      </snapshots>
                  </repository>
              </repositories>
              <pluginRepositories>
                  <!-- 插件仓库,maven 的运行依赖插件,也需要从私服下载插件 -->
                  <pluginRepository>
                      <!-- 插件仓库的 id 不允许重复,如果重复后边配置会覆盖前边 -->
                      <id>public</id>
                      <name>Public Repositories</name>
                      <url>http://localhost:8081/repository/maven-public/</url>
                      <!--是否下载 releases 构件-->
                      <releases>
                          <enabled>true</enabled>
                      </releases>
                      <!--是否下载 snapshots 构件-->
                      <snapshots>
                          <enabled>true</enabled>
                      </snapshots>
                  </pluginRepository>
              </pluginRepositories>
          </profile>

 ③activeProfiles节点

  <!-- 激活下载模板-->
    <activeProfiles>
      <activeProfile>nexus</activeProfile>
    </activeProfiles>

④下载依赖

POM中的repositories

<!--获取公共的Maven依赖库-->
  <repositories>
    <repository>
      <id>nexus</id>
      <url>http://localhost:8081/repository/maven-public/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>`1

  到这里,你的项目已经可以正常使用Nexus了。

到这里我的分享就结束了,欢迎到评论区探讨交流!!

如果觉得有用的话还请点个赞吧 ♥  ♥

猜你喜欢

转载自blog.csdn.net/weixin_74318097/article/details/132579773
今日推荐