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

简介: 从零开始: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

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

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节点

1. <!-- 激活下载模板-->
2. <activeProfiles>
3. <activeProfile>nexus</activeProfile>
4. </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了。

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

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

相关文章
|
3月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
153 1
|
1月前
|
Java Shell 应用服务中间件
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
这篇文章介绍了如何在Mac系统下配置Java JDK、Maven和Tomcat的环境变量,包括配置文件的选择、解决环境变量在zsh shell中无效的问题、查看和设置系统环境变量的方法,以及JDK和Maven的下载、配置和测试步骤。
1327 1
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
97 1
|
1月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
101 4
|
1月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
501 3
|
1月前
|
Java Maven
震惊!idea专业版如何配置maven国内源手把手教学
文章提供了如何在IDEA专业版中配置Maven使用国内源(如阿里云)的详细步骤,以加快依赖下载速度,并解释了配置国内源的原因。
440 0
震惊!idea专业版如何配置maven国内源手把手教学
|
2月前
|
XML Java Maven
idea配置maven步骤及常见问题
本文介绍了在IDEA中配置Maven的详细步骤,包括Maven的下载、系统环境变量的配置、Maven本地仓库的设置、镜像加速的配置,以及在IDEA中指定Maven路径和配置文件。同时,还提供了解决每次新建项目需要重新手动配置Maven问题的方法。
idea配置maven步骤及常见问题
|
3月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
537 3
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
3月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。