一步步教你如何搭建 Nexus 的 Maven 私服

本文详细介绍了Maven的基础概念、Maven项目对象模型(POM)的应用,以及如何配置Maven私服Nexus,包括本地仓库设置、阿里云镜像配置、Maven版本管理和项目部署到私有仓库的步骤。

在这里插入图片描述
本文详细介绍了如何搭建 Nexus 的 Maven 私服。

Maven 简介

什么是 Maven

在这里插入图片描述

Maven这个单词来自于意第绪语(犹太语),意为知识的积累。

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven 的发展历史

在这里插入图片描述

Maven 的体系结构

在这里插入图片描述

Maven 的配置

安装

下载地址:https://archive.apache.org/dist/maven/maven-3/
推荐下载 3.6.3版本,下载后解压即可。

配置本地仓库
<localRepository> 本地仓库地址 <localRepository>

在这里插入图片描述

配置阿里云镜像

由于中央仓库在境外,网络访问不稳定,故在开发过程中大多配置中央仓库的镜像仓库。

<mirror>
	<id>aliyunmaven</id>
	<mirrorOf>*</mirrorOf>
	<name>阿里云公共仓库</name>
	<url>https://maven.aliyun.com/repository/public</url>
</mirror>

在这里插入图片描述

profile 配置

配置maven默认使用的jdk环境。

<profile>
 <id>jdk-1.8</id>
 <activation>
	  <activeByDefault>true</activeByDefault>
	  <jdk>1.8</jdk>
 </activation>
 
 <properties>
	  <maven.compiler.source>1.8</maven.compiler.source>
	  <maven.compiler.target>1.8</maven.compiler.target>
	  <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
 </properties>
</profile>

在这里插入图片描述

idea 全局配置 Maven

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

Maven 核心思想

Maven 仓库

在这里插入图片描述

Maven 生命周期

在这里插入图片描述

maven项目对象模型(pom)

在这里插入图片描述

dependency

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

Maven 私服 Nexus 的搭建

Nexus 的安装

官网下载链接:https://help.sonatype.com/repomanager3/product-information/download
在这里插入图片描述
将安装包上传到 Linux 中,这里我们选择上传目录为 /usr/local/software/nexus ,然后解压 tar -zxvf nexus-3.61.0-02-unix.tar.gz,解压后将压缩包删除节省空间。
最终目录如下
在这里插入图片描述

nexus-3.61.0-02:服务器文件夹,启动程序等。
sonatype-work:工作空间,数据文件。

Nexus 的配置

内存配置

修改 nexus-3.61.0-02/bin/nexus.vmoptions 文件
在这里插入图片描述

内存分配大小参考(本机内存为8G),根据自己机器内存大小,适当配置内存大小(内存太小会启动失败)。

端口配置

默认端口为 8081,如需修改,配置文件为:/nexus-3.61.0-02/etc/nexus-default.properties
在这里插入图片描述
端口确定后,需要 Linux 防火墙开放此端口。

# 开放端口 --permanent表示将该规则永久保存,使得在系统重启后依然有效。
firewall-cmd --add-port=8081/tcp --permanent 
# 重新加载防火墙配置
firewall-cmd --reload

运行 Nexus

启动 Nexus
  1. 切换到 bin 目录下 nexus-3.61.0-02/bin
  2. 执行启动命令 ./nexus start
    在这里插入图片描述
登录并修改密码

浏览器打开 http://服务器ip:8081/,如下图
在这里插入图片描述
进入 sonatype-work/nexus3 目录查看登录用户名和密码。
在这里插入图片描述
如图,使用 cat admin.password 命令可查看admin用户的初始密码。
在这里插入图片描述
现在我们点击浏览器页面右上角,点击登录,输入用户名和密码。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

配置私有仓库

  • maven-releases (Version policy=Release)默认只允许上传不带SNAPSHOT版本尾缀的包,默认部署策略是Disable redeploy 不允许重复上传相同版本号信息的jar,避免包版本更新以后使用方无法获取到最新的包。
  • maven-snapshots (Version policy=Snapshot)只允许上传带SNAPSHOT版本尾缀的包,默认部署策略是Allow redeploy,允许重复上传相同版本号信息的jar,每次上传的时候会在jar的版本号上面增加时间后缀信息。
  • maven-central 中央仓库的拷贝,如果环境可以访问中央仓库,则可以获取到相关的包,否则没用。
  • maven-public 仓库组,不是实际个一个仓库地址,只是将现有的组合到一次,可以通过它看到所属组内全部仓库的jar信息。

在这里插入图片描述

创建自定义仓库

在这里插入图片描述
然后选择 maven2(hosted)在这里插入图片描述
在这里插入图片描述
配置完成后点击最下面的 Create repository。然后我们就可以在仓库列表页看到刚刚创建的仓库了。
在这里插入图片描述

添加新建仓库到maven-public群组中

添加后访问 maven-public 就可以访问自己的私有仓库了
在这里插入图片描述
在这里插入图片描述

导入本地仓库到 Nexus 私有仓库

上传文件到 Linus 服务器

nexus 目录下新建 repo 目录,然后将本地(Windows)仓库文件上传至 repo 目录下。
在这里插入图片描述
上传成功后,我们需要将文件上传到刚刚在 nexus 中新建的私有仓库中。

批量上传脚本(从 repo 上传到 nexus)
  1. repo 目录下创建 repo.sh 脚本文件。
    touch repo.sh
    在这里插入图片描述

  2. 编辑脚本(直接复制)

    #!/bin/bash
    while getopts ":r:u:p:" opt; do
        case $opt in
            r) REPO_URL="$OPTARG"
            ;;
            u) USERNAME="$OPTARG"
            ;;
            p) PASSWORD="$OPTARG"
            ;;
        esac
    done
      
    find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
    
    
  3. 给脚本添加可执行权限

    chmod +x repo.sh
    
  4. 执行导入命令

    ./repo.sh -u admin -p 123 -r http://192.168.200.135:8081/repository/maven-repository/
    

    注意修改登录密码,服务器ip和私有仓库名称

    完成后可到 Nexus 仓库中查看上传的文件。

项目中引用nexus库

修改 Maven 配置
  1. 在maven配置文件(conf/settings.xml)中配置server
    在这里插入图片描述
  2. 在maven配置文件中配置镜像
    在这里插入图片描述
项目中配置发布管理

在项目的 pom.xml 文件中添加

<distributionManagement>
    <repository>
        <id>maven-repository</id>
        <url>http://192.168.200.135:8081/repository/maven-repository/</url>
    </repository>
</distributionManagement>

注意配置在最外面这个pom文件下

在这里插入图片描述

...
    <dependencies>
        ...
    </dependencies>
    <distributionManagement>
        <repository>
            <id>maven-repository</id>
            <url>http://192.168.200.135:8081/repository/maven-repository/</url>
        </repository>
    </distributionManagement>
</project>

私服url从下图获取
在这里插入图片描述

部署项目到私服

在这里插入图片描述
点击 deploy 部署,部署完成后,可以到 Nexus 私有仓库中查看,若项目成功部署上去,即证明配置搭建成功。


感谢大家读到这里,后续还会有其他相关文章,欢迎继续阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值